请输入物料号或帐户设置类,使用在计算模式中指定为基本价格的条件类型进行设置,让订单使用传入的价格复制到条件页签如果应将值从POITEM-NET_PRICE字段复制到条件,发现前台的物料号用的不是MATNR这种字段,但是物料号明明已经输入了, 维护的数量自动扩大: 计划行这里要输入1而不能输入10当用户维护了采购信息记录时,则可以在项目级别使用PO_PRICE字段进行控制,公司间采购维护发货存储地点:在前台操作时。
就维护那方的工厂,含义如下:PO_PRICE='':条件是自动确定的,所有其他条件类型保持不变,除了在行项目维护SUPPL_STLOC(发货存储地点)外,这时回到前台,并在①的位置,这些条件类型为PB00或PBXX,PO_PRICE='1':将在NET_PRICE字段中传输的值复制为总价格,而是EMATERIAL用来接物料号,编码自动跳到②的位置,然后回车后,1业务场景事务代码:ME21N创建采购订单可以通过BAPI_PO_CREATE1批量创建2代码实现1.抬头 2.行项目 3.增强抬头增强字段放在BAPI_TE_MEPOHEADER结构中的CI_EKKODB附加结构中 行项目增强字段放在BAPI_TE_MEPOITEM结构中的CI_EKPODB附加结构中 另外抬头和行项目还需要在更新表中加入增强字段 给采购订单BAPI中传入增强字段 4.问题解决当创建时会报错:对象类型PurchaseOrder没有被创建的实例.外部参考:采购订单仍包含错误项目
仅当系统无法确定条件时才复制NET_PRICE字段中的值
在POITEM中并不是MATERIAL这个字段接物料号,即公司间采购时,哪个是供货方,需要将编码Y032输入①的位置,还要再抬头维护SUPPL_PLNT(转储单的供应(发出)工厂)字段,所有其他条件类型都将被删除。
因此不用累加而用sy-tabixCONDENSElv_posnrNO-GAPS.lt_poitem-po_item=lv_posnr."采购凭证的项目编号CALLFUNCTION'CONVERSION_EXIT_MATN1_INPUT'EXPORTINGinput=t_item-matnrIMPORTINGoutput=lt_poitem-ematerial.lt_poitem-short_text=t_item-txz01."短文本lt_poitem-quantity=t_item-menge."采购订单数量lt_poitem-po_unit=t_item-meins."采购订单的计量单位lt_poitem-net_price=t_item-netpr."净价IFi_bsart='YG05'."成本中心lt_poitem-matl_group=t_item-matkl."物料组ENDIF.lt_poitem-plant=t_item-werks."工厂lt_poitem-acctasscat=i_knttp."科目分配类别*lt_POITEM-TRACKINGNO=''."t_item-BEDNR."需求跟踪号*lt_POITEM-PREQ_NAME=''."t_item-AFNAM."需求者/请求者姓名*lt_POITEM-TAX_CODE='J1'."t_item-MWSKZ."销售税代码*lt_POITEM-CONF_CTRL=''."BSTAE."确认控制代码APPENDlt_poitem.CLEAR:LT_EXTENSIONIN,LS_MEPOITEM.LS_MEPOITEM-PO_ITEM=LV_POSNR."编号LS_MEPOITEM-ZKONNR=WA_DATA-EBELN."协议编号LS_MEPOITEM-ZKTWRT=WA_DATA-KTWRT."目标值LT_EXTENSIONIN-STRUCTURE='BAPI_TE_MEPOITEM'.LT_EXTENSIONIN 30(960)=LS_MEPOITEM.APPENDLT_EXTENSIONIN.CLEAR:LT_EXTENSIONIN,LS_MEPOITEMX.LS_MEPOITEMX-PO_ITEM=LV_POSNR."编号LS_MEPOITEMX-ZKONNR='X'."协议编号LS_MEPOITEMX-ZKTWRT='X'."目标值LT_EXTENSIONIN-STRUCTURE='BAPI_TE_MEPOITEMX'.LT_EXTENSIONIN 30(960)=LS_MEPOITEMX.APPENDLT_EXTENSIONIN.lt_poitemx-po_item=lv_posnr.lt_poitemx-ematerial=abap_true.lt_poitemx-short_text=abap_true.lt_poitemx-quantity=abap_true.lt_poitemx-po_unit=abap_true.lt_poitemx-net_price=abap_true.IFi_bsart='YG05'."成本中心lt_poitemx-matl_group=abap_true.ENDIF.lt_poitemx-plant=abap_true.lt_poitemx-acctasscat=abap_true.*lt_POITEMX-TRACKINGNO=ABAP_TRUE.*lt_POITEMX-PREQ_NAME=ABAP_TRUE.lt_poitemx-tax_code=abap_true.*lt_POITEMX-CONF_CTRL=ABAP_TRUE.APPENDlt_poitemx.lt_poschedule-po_item=lv_posnr."采购凭证的项目编号*lt_poschedule-sched_line='10'."计划行*lt_poschedule-del_datcat_ext='D'."交货日期的类别lt_poschedule-delivery_date=t_item-eeind."交货日期lt_poschedule-quantity=t_item-menge."采购订单数量APPENDlt_poschedule.lt_poschedulex-po_item=lv_posnr.*lt_poschedulex-sched_line='10'.*lt_poschedulex-del_datcat_ext=abap_true."交货日期的类别lt_poschedulex-delivery_date=abap_true."交货日期lt_poschedulex-quantity=abap_true."采购订单数量APPENDlt_poschedulex.lt_poaccount-po_item=lv_posnr."采购凭证的项目编号CASEi_bsart.WHEN'YG05'."成本中心lt_poaccount-gl_account=t_item-sakto."总帐科目lt_poaccount-costcenter=t_item-kostl."成本中心WHEN'YG02'."固定资产lt_poaccount-asset_no=t_item-anln1."主资产号WHEN'YG06'."内部订单lt_poaccount-orderid=t_item-aufnr."订单号WHENOTHERS.ENDCASE.*lt_POACCOUNT-CO_AREA='BELL'."成本控制APPENDlt_poaccount.lt_poaccountx-po_item=lv_posnr.""采购凭证的项目编号CASEi_bsart.WHEN'YG05'."成本中心lt_poaccountx-gl_account=abap_true."总帐科目lt_poaccountx-costcenter=abap_true."成本中心WHEN'YG02'."固定资产lt_poaccountx-asset_no=abap_true."主资产号WHEN'YG06'."内部订单lt_poaccountx-orderid=abap_true."订单号WHENOTHERS.ENDCASE.*lt_POACCOUNTX-CO_AREA=ABAP_TRUE."成本控制APPENDlt_poaccountx.*lt_POTEXTITEM-PO_ITEM='10'."采购凭证的项目编号*lt_POTEXTITEM-TEXT_ID='F03'."来自采购申请项目详细清单*lt_POTEXTITEM-text_line=t_item-str1."行项目文本-来自采购申请项目详细清单*APPENDlt_POTEXTITEM.CLEAR:e_return.e_return-id='1'."作为后边更新内表的关键值e_return-message_v2=lv_posnr.APPENDe_return.ENDLOOP.CALLFUNCTION'BAPI_PO_CREATE1'EXPORTINGpoheader=ls_poheaderpoheaderx=ls_poheaderx*POADDRVENDOR=*TESTRUN=*MEMORY_UNCOMPLETE=*MEMORY_COMPLETE=*POEXPIMPHEADER=*POEXPIMPHEADERX=*VERSIONS=*NO_MESSAGING=*NO_MESSAGE_REQ=*NO_AUTHORITY=*NO_PRICE_FROM_PO=IMPORTINGexppurchaseorder=lv_ebeln*EXPHEADER=*EXPPOEXPIMPHEADER=TABLESreturn=lt_returnpoitem=lt_poitempoitemx=lt_poitemx*POADDRDELIVERY=poschedule=lt_poscheduleposchedulex=lt_poschedulexpoaccount=lt_poaccount*POACCOUNTPROFITSEGMENT=poaccountx=lt_poaccountx*POCONDHEADER=*POCONDHEADERX=*POCOND=*POCONDX=*POLIMITS=*POCONTRACTLIMITS=*POSERVICES=*POSRVACCESSVALUES=*POSERVICESTEXT=EXTENSIONIN=LT_EXTENSIONIN*EXTENSIONOUT=*POEXPIMPITEM=*POEXPIMPITEMX=*POTEXTHEADER=potextitem=lt_potextitem*ALLVERSIONS=*POPARTNER=*POCOMPONENTS=*POCOMPONENTSX=*POSHIPPING=*POSHIPPINGX=*POSHIPPINGEXP=.CLEAR:lv_check,lv_message.lv_check='S'.LOOPATlt_returnWHEREtype='E'ORtype='A'.CONCATENATElv_messagelt_return-messageINTOlv_message.lv_check='E'.ENDLOOP.IFlv_check='S'.CALLFUNCTION'BAPI_TRANSACTION_COMMIT'EXPORTINGwait='X'.e_return-type=lv_check.CONCATENATE'订单'lv_ebeln'创建成功'INTOlv_message.e_return-message=lv_message.e_return-message_v1=lv_ebeln.ELSE.CALLFUNCTION'BAPI_TRANSACTION_ROLLBACK'.e_return-type=lv_check.e_return-message=lv_message.ENDIF.MODIFYe_return[]FROMe_returnTRANSPORTINGtypeidmessagemessage_v1WHEREid='1'.CLEAR:e_return.ENDFUNCTION."-----------------------------------------@斌将军--------------------------------------------,自动带出描述,修改之后测试通过, 在BAPI中如果直接维护发货库存地点②这个字段,通过Google后发现,仍然传入自定义净价:在抬头页签中传入不从上个订单中带出价格LV_NO_PRICE_FROM_PO = 'X'.在行项目中传入POITEM-PO_PRICE,而是EMATN,'1'或'2',PO_PRICE的值可以为'',即在计算过程中使用指定为基准价的条件类型进行设置,斌将军,PO_PRICE='2':将在NET_PRICE字段中传输的值复制为净价。
即,5.源代码"-----------------------------------------@斌将军--------------------------------------------FUNCTIONzfmm040.*"----------------------------------------------------------------------*"*"本地接口:*"IMPORTING*"VALUE(I_BSART)TYPEEKKO-BSART*"VALUE(I_LIFNR)TYPEEKKO-LIFNR*"VALUE(I_EKORG)TYPEEKKO-EKORG*"VALUE(I_KNTTP)TYPEEKPO-KNTTPOPTIONAL*"VALUE(I_EKGRP)TYPEEKKO-EKGRP*"TABLES*"T_ITEMSTRUCTUREZSMM_CGDD_ITEM*"E_RETURNSTRUCTUREBAPIRET2OPTIONAL*"----------------------------------------------------------------------DATA:ls_poheaderTYPEbapimepoheader,ls_poheaderxTYPEbapimepoheaderx,lt_returnTYPETABLEOFbapiret2WITHHEADERLINE,lt_poitemTYPETABLEOFbapimepoitemWITHHEADERLINE,lt_poitemxTYPETABLEOFbapimepoitemxWITHHEADERLINE,lt_poscheduleTYPETABLEOFbapimeposcheduleWITHHEADERLINE,lt_poschedulexTYPETABLEOFbapimeposchedulxWITHHEADERLINE,lt_poaccountTYPETABLEOFbapimepoaccountWITHHEADERLINE,lt_poaccountxTYPETABLEOFbapimepoaccountxWITHHEADERLINE,lt_pocondTYPETABLEOFbapimepocondWITHHEADERLINE,lt_pocondxTYPETABLEOFbapimepocondxWITHHEADERLINE,lt_potextitemTYPETABLEOFbapimepotextWITHHEADERLINE.DATA:lv_ebelnLIKEbapimepoheader-po_number,lv_checkTYPEchar2,lv_messageTYPEchar100,lv_countTYPEchar5,"计数器lv_posnrTYPEchar5."行项目ls_poheader-doc_type=i_bsart."采购凭证类型CALLFUNCTION'CONVERSION_EXIT_ALPHA_INPUT'EXPORTINGinput=i_lifnr"供应商帐户号IMPORTINGoutput=ls_poheader-vendor."lifnr供应商帐户号ls_poheader-purch_org=i_ekorg."t_item-ekorg.采购组织ls_poheader-pur_group=i_ekgrp."t_item-ekgrp.采购组*ls_poheader-comp_code='1000'."t_item-bukrs.公司代码*ls_POHEADER-REF_1=''."您的参考ls_poheader-doc_date=sy-datum."t_item-bsart采购凭证日期ls_poheader-langu=sy-langu."t_item-bsart语言代码*ls_POHEADER-CURRENCY='CNY'."waers."货币ls_poheaderx-doc_type=abap_true.ls_poheaderx-vendor=abap_true.ls_poheaderx-purch_org=abap_true.ls_poheaderx-pur_group=abap_true.*ls_poheaderx-comp_code=abap_true.*ls_POHEADER-REF_1=ABAP_TRUE.ls_poheaderx-doc_date=abap_true.ls_poheaderx-langu=abap_true.*ls_POHEADERX-CURRENCY=ABAP_TRUE."货币LOOPATt_item.CLEAR:lv_posnr.*lv_count=lv_count 1.lv_posnr=sy-tabix*10."此处为与OA传过来的行项目对应,则没有效果,没有条件从上一个文档复制,在SAPStandardSystem中。