SAP MM在创建采购订单的时候提示合伙人和sap供应商寄售的问题,采购申请里面没有定义sap供应商寄售,订单无法创建吗?

批量采购订单导入之——程序
*********************************************************************
*程序名称&&ZMMF018
*程序说明&&导入采购订单
*所属模块&&MM
*程序开发&&路鹏飞
*开发时间&&
*********************************************************************
*序&&修改时间&&&修改人&请求号&&&&修改说明
*********************************************************************
REPORT&&zmmf018&MESSAGE-ID&zpp02.
TYPE-POOLS:&slis.
INCLUDE&&icon&.
*---------------------------------------------定义ALV字段
DATA:&g_repid&TYPE&sy-repid.
DATA:&l_alv_filed&&TYPE&slis_fieldcat_alv.
DATA:&l_alv_filedcat&&TYPE&slis_t_fieldcat_alv.
DATA:&layout&TYPE&slis_layout_alv.
DATA:&gs_print&TYPE&slis_print_alv.
*----------------------------------------------定义BAPI
DATA:&it_popartner&LIKE&TABLE&OF&bapiekkop&WITH&HEADER&LINE&."合伙人
DATA:&head&LIKE&bapimepoheader.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&"采购订单抬头数据
DATA:&headx&LIKE&bapimepoheaderx.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&"采购订单抬头数据(更改参数)
DATA:&item&LIKE&TABLE&OF&bapimepoitem&WITH&HEADER&LINE.&&&&&&&"采购订单项目
DATA:&itemx&LIKE&TABLE&OF&bapimepoitemx&WITH&HEADER&LINE.&&&&&"采购订单项目数据(更改参数)
DATA:&shde&LIKE&TABLE&OF&bapimeposchedule&WITH&HEADER&LINE.&&&"采购订单交货计划行的字段
DATA:&shdex&LIKE&TABLE&OF&bapimeposchedulx&WITH&HEADER&LINE.&&"采购订单中的计划行字段&(更改工具栏)
DATA:&acot&LIKE&TABLE&OF&bapimepoaccount&WITH&HEADER&LINE.&&&&"采购订单的帐户分配字段
DATA:&acotx&LIKE&TABLE&OF&bapimepoaccountx&WITH&HEADER&LINE.&&"采购订单的帐目分配字段&(更改工具条)
DATA:&return&LIKE&TABLE&OF&bapiret2&WITH&HEADER&LINE.&&&&&&&&&"返回参数
DATA:&document&LIKE&bapimepoheader-po_number.&&&&&&&&&&&&&&&&&"采购凭证号
DATA&&ebelp&TYPE&i&VALUE&10.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&"采购凭证的项目编号
DATA:&message(40).
DATA:&x&TYPE&i.
DATA:&it_ekpo&LIKE&TABLE&OF&ekpo.
DATA:&wa_ekpo&LIKE&LINE&OF&it_ekpo.
DATA:&it_ekko&LIKE&TABLE&OF&ekko.
DATA:&wa_ekko&LIKE&LINE&OF&it_ekko.
DATA:it_cond&&&&&&LIKE&bapimepocond&&&&&OCCURS&0&WITH&HEADER&LINE.&"价格条件
"DATA&WA_COND&LIKE&LINE&OF&IT_COND.
DATA:it_condx&&&&&LIKE&bapimepocondx&&&&OCCURS&0&WITH&HEADER&LINE.
DATA:&potextitem&LIKE&TABLE&OF&bapimepotext&WITH&HEADER&LINE.&"文本:&(抬头或项目)
*------------------------------------------------------定义结构
DATA:&BEGIN&OF&wa&OCCURS&0,
&&&&&&index(25),
&&&&&&bsart&LIKE&ekko-bsart,"采购凭证类型
&&&&&&batxt&LIKE&t161t-batxt,"订单类型描述
&&&&&&bukrs&LIKE&ekko-bukrs,"公司代码
&&&&&&ekorg&LIKE&ekko-ekorg,"采购组织
&&&&&&ekgrp&LIKE&ekko-ekgrp,"采购组
&&&&&&eknam&LIKE&t024-eknam,"采购组描述
&&&&&&mtxno&LIKE&eine-mtxno,"订单文本
&&&&&&lifnr&LIKE&ekko-lifnr,"供应商帐户号
&&&&&&mcod1&LIKE&lfa1-mcod1,"供应商描述
&&&&&&zterm&LIKE&ekko-zterm,"付款条件
&&&&&&vtext&LIKE&tvzbt-vtext,"付款条件描述
&&&&&&matnr&LIKE&ekpo-matnr,"物料号
&&&&&&maktx&LIKE&makt-maktx,"物料描述
&&&&&&msehl&LIKE&t006a-msehl,"单位描述
&&&&&&meins&LIKE&ekpo-meins,"单位
&&&&&&menge(17),&&&&&&&&&&&&"数量
&&&&&&werks&LIKE&ekpo-werks,"工厂----地点
&&&&&&lgort&LIKE&ekpo-lgort,"库存地点
&&&&&&mwskz&LIKE&ekpo-mwskz,"销售税代码
&&&&&&netpr(17),&&&&&&&&&&&&"净价
&&&&&&price_unit&LIKE&ekpo-peinh,"价格单位
&&&&&&"kpein&LIKE&lips-kpein,"单价数量
&&&&&&umson&LIKE&ztpsp-umson,"免费
&&&&&&retpo&LIKE&ekpo-retpo,"退货
&&&&&&eindt(8),&&&&&&&&&&&&&"交货日期
&&&&&&"bednr&LIKE&ekpo-bednr,"需求跟踪号
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&"KOSTL(12),
&&&&&&anln1&LIKE&anek-anln1,"资产编号
&&&&&&anln2&LIKE&anek-anln2,"资产子号
&&&&&&matkl&LIKE&ekpo-matkl,"物料组
&&&&&&ztext&LIKE&bapimepotext-text_line,&&"项目文本
&&&&&&zrpid&LIKE&ekpo-zzrpn,&&"需求计划号
&&&&&&END&OF&wa,
&&&&&&zitab&LIKE&TABLE&OF&wa&WITH&HEADER&LINE,
&&&&&&wa_zitab&LIKE&LINE&OF&zitab.
*-------------------------------------------------------定义转换结构
DATA:&BEGIN&OF&wa2&OCCURS&0,
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&"index(25),
&&&&&&bsart&LIKE&ekko-bsart,"采购凭证类型
&&&&&&bukrs&LIKE&ekko-bukrs,"公司代码
&&&&&&ekorg&LIKE&ekko-ekorg,"采购组织
&&&&&&ekgrp&LIKE&ekko-ekgrp,"采购组
&&&&&&lifnr&LIKE&ekko-lifnr,"供应商帐户号
&&&&&&zterm&LIKE&ekko-zterm,"付款条件
&&&&&&eknam&LIKE&t024-eknam,"采购组描述
&&&&&&batxt&LIKE&t161t-batxt,"订单类型描述
&&&&&&mtxno&LIKE&eine-mtxno,"订单文本
&&&&&&mcod1&LIKE&lfa1-mcod1,"供应商描述
&&&&&&vtext&LIKE&tvzbt-vtext,"付款条件描述
&&&&&&matnr&LIKE&ekpo-matnr,"物料号
&&&&&&maktx&LIKE&makt-maktx,"物料描述
&&&&&&msehl&LIKE&t006a-msehl,"单位描述
&&&&&&meins&LIKE&ekpo-meins,"单位
&&&&&&menge(17),&&&&&&&&&&&&"数量
&&&&&&werks&LIKE&ekpo-werks,"工厂----地点
&&&&&&lgort&LIKE&ekpo-lgort,"库存地点
&&&&&&mwskz&LIKE&ekpo-mwskz,"销售税代码
&&&&&&netpr(17),&&&&&&&&&&&&"净价
&&&&&&price_unit&LIKE&ekpo-peinh,"价格单位
&&&&&&"kpein&LIKE&lips-kpein,"单价数量
&&&&&&umson&LIKE&ztpsp-umson,"免费
&&&&&&retpo&LIKE&ekpo-retpo,"退货
&&&&&&eindt(8),&&&&&&&&&&&&&"交货日期
&&&&&&"bednr&LIKE&ekpo-bednr,"需求跟踪号
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&"KOSTL(12),
&&&&&&anln1&LIKE&anek-anln1,"资产编号
&&&&&&anln2&LIKE&anek-anln2,"资产子号
&&&&&&matkl&LIKE&ekpo-matkl,"物料组
&&&&&&ztext&LIKE&bapimepotext-text_line,&&"项目文本
&&&&&&zrpid&LIKE&ekpo-zzrpn,&&"需求计划号
&&&&&&index(25),
&&&&&&END&OF&wa2,
&&&&&&zitab2&LIKE&TABLE&OF&wa2&WITH&HEADER&LINE,
&&&&&&wa_zitab2&LIKE&LINE&OF&zitab2.
*------------------------------------------------定义项目号和需求计划号结构,其中需求计划号为增强字段
DATA:&BEGIN&OF&itab&OCCURS&0,
&&&&&&ebelp&LIKE&ekpo-ebelp,
&&&&&&zrpid&LIKE&ekpo-zzrpn,
&&END&OF&itab.
DATA&wa_itab&LIKE&LINE&OF&itab.
*-------------------------------------------------------定义消息日志结构
DATA:&BEGIN&OF&zlog&OCCURS&0,
&&&&&&set(1),
&&&&&&icon&LIKE&icon-id,&&&&&&"文本字段中的图标(替换显示,别名)
&&&&&&index(25),
&&&&&&ebeln&LIKE&ekko-ebeln,&&"采购凭证号
&&&&&&messg(100),
&&&&&&END&OF&zlog.
DATA:number&TYPE&i&VALUE&10.
DEFINE&addfield.
&&l_alv_filed-fieldname&&&&&=&&&1.
&&l_alv_filed-reptext_ddic&&=&&&2.
&&l_alv_filed-outputlen&&&&&=&&&3.
&&l_alv_filed-icon&&&&&&&&&&=&&&4.
&&l_alv_filed-checkbox&&&&&&=&&&5.
&&append&l_alv_filed&to&l_alv_filedcat.
&&clear&l_alv_filed.
END-OF-DEFINITION.
*-------------------------------------------------------屏幕处理
PARAMETERS:&fname&TYPE&rlgrap-filename&OBLIGATORY.&"用于装载/卸载的局部文件
SELECTION-SCREEN&SKIP.
SELECTION-SCREEN
BEGIN&OF&BLOCK&blk1&WITH&FRAME&TITLE&text-t01.
SELECTION-SCREEN&SKIP.
SELECTION-SCREEN&BEGIN&OF&LINE.
SELECTION-SCREEN&COMMENT&1(79)&text-002.
SELECTION-SCREEN&END&OF&LINE.
SELECTION-SCREEN&BEGIN&OF&LINE.
SELECTION-SCREEN&COMMENT&1(79)&text-003.
SELECTION-SCREEN&END&OF&LINE.
SELECTION-SCREEN&BEGIN&OF&LINE.
SELECTION-SCREEN&COMMENT&1(79)&text-004.
SELECTION-SCREEN&END&OF&LINE.
SELECTION-SCREEN&END&OF&BLOCK&blk1.
SELECTION-SCREEN&BEGIN&OF&LINE.
SELECTION-SCREEN&COMMENT&1(79)&text-001.
SELECTION-SCREEN&END&OF&LINE.
SELECTION-SCREEN&BEGIN&OF&LINE.
SELECTION-SCREEN&COMMENT&1(79)&text-006.
SELECTION-SCREEN&END&OF&LINE.
SELECTION-SCREEN&BEGIN&OF&LINE.
SELECTION-SCREEN&COMMENT&1(79)&text-008.
SELECTION-SCREEN&END&OF&LINE.
*-------------------------------------------------------初始化
INITIALIZATION.
&&g_repid&=&sy-repid.
&&layout-box_fieldname&=&'SET'.
&&layout-zebra&&&&&&=&'X'.
&&addfield&'ICON'&'信号灯'&'6'&'X'&''.
&&addfield&'INDEX'&'序号'&'20'&''&''.
&&addfield&'EBELN'&'订单编号'&'12'&''&''.
&&addfield&'MESSG'&'消息文本'&'60'&''&''.
AT&SELECTION-SCREEN&ON&VALUE-REQUEST&FOR&fname.
&&PERFORM&get_filename.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
“获取文件
START-OF-SELECTION.
&&PERFORM&upload_file.”上载
&&PERFORM&call_bapi.“调用BAPI
&&PERFORM&output_alv.”输出日志
*&---------------------------------------------------------------------*
*&&&&&&&Form&&GET_FILENAME
*&---------------------------------------------------------------------*
*&&&&&&&text
*----------------------------------------------------------------------*
FORM&get_filename.
&&CALL&FUNCTION&'WS_FILENAME_GET'
&&&&EXPORTING
&&&&&&mask&&&&&&&&&&&&&=&',文本文件(制表符分隔),*.txt.'(101)
&&&&&&title&&&&&&&&&&&&=&'选择文件'(100)
&&&&IMPORTING
&&&&&&filename&&&&&&&&&=&fname
&&&&EXCEPTIONS
&&&&&&inv_winsys&&&&&&&=&1
&&&&&&no_batch&&&&&&&&&=&2
&&&&&&selection_cancel&=&3
&&&&&&selection_error&&=&4
&&&&&&OTHERS&&&&&&&&&&&=&5.
&&IF&sy-subrc&&&&0&AND&sy-subrc&&&&3.
&&&&MESSAGE&'选择文件出错'&TYPE&'E'.
ENDFORM.&&&&&&&&&&&&&&&&&&&&"GET_FILENAME
*&---------------------------------------------------------------------*
*&&&&&&&Form&&UPLOAD_FILE
*&---------------------------------------------------------------------*
*&&&&&&&text
*----------------------------------------------------------------------*
FORM&upload_file&.
&&CALL&FUNCTION&'WS_UPLOAD'
&&&&EXPORTING
&&&&&&filename&&&&&&&&&&&&=&fname
&&&&&&filetype&&&&&&&&&&&&=&'DAT'
&&&&TABLES
&&&&&&data_tab&&&&&&&&&&&&=&zitab
&&&&EXCEPTIONS
&&&&&&conversion_error&&&&=&1
&&&&&&file_open_error&&&&&=&2
&&&&&&file_read_error&&&&&=&3
&&&&&&invalid_table_width&=&4
&&&&&&invalid_type&&&&&&&&=&5
&&&&&&no_batch&&&&&&&&&&&&=&6
&&&&&&unknown_error&&&&&&&=&7
&&&&&&OTHERS&&&&&&&&&&&&&&=&8.
&&IF&sy-subrc&NE&0.
&&&&MESSAGE&s004&WITH&fname.
&&READ&TABLE&zitab&INDEX&3.
&&IF&zitab-werks&CN&''.
&&&&DELETE&zitab&INDEX&3.
&&IF&zitab[]&IS&INITIAL.
&&&&MESSAGE&s005&WITH&fname.
&&LOOP&AT&zitab&INTO&wa_zitab.”结构转换(相当于一个字段排序的操作)
&&&&wa_zitab2-bsart&=&wa_zitab-bsart&.
&&&&wa_zitab2-bukrs&=&wa_zitab-bukrs&.
&&&&wa_zitab2-ekorg&=&wa_zitab-ekorg&.
&&&&wa_zitab2-ekgrp&=&wa_zitab-ekgrp&.
&&&&wa_zitab2-lifnr&=&wa_zitab-lifnr&.
&&&&wa_zitab2-zterm&=&wa_zitab-zterm&.
&&&&wa_zitab2-eknam&=&wa_zitab-eknam&.
&&&&wa_zitab2-batxt&=&wa_zitab-batxt&.
&&&&wa_zitab2-mtxno&=&wa_zitab-mtxno&.
&&&&wa_zitab2-mcod1&=&wa_zitab-mcod1&.
&&&&wa_zitab2-vtext&=&wa_zitab-vtext&.
&&&&wa_zitab2-matnr&=&wa_zitab-matnr&.
&&&&wa_zitab2-maktx&=&wa_zitab-maktx&.
&&&&wa_zitab2-msehl&=&wa_zitab-msehl&.
&&&&wa_zitab2-meins&=&wa_zitab-meins&.
&&&&wa_zitab2-menge&=&wa_zitab-menge&.
&&&&wa_zitab2-werks&=&wa_zitab-werks&.
&&&&wa_zitab2-lgort&=&wa_zitab-lgort&.
&&&&wa_zitab2-mwskz&=&wa_zitab-mwskz&.
&&&&wa_zitab2-netpr&=&wa_zitab-netpr&.
&&&&wa_zitab2-price_unit&=&wa_zitab-price_unit&.
&&&&wa_zitab2-umson&=&wa_zitab-umson&.
&&&&wa_zitab2-retpo&=&wa_zitab-retpo&.
&&&&wa_zitab2-eindt&=&wa_zitab-eindt&.
&&&&wa_zitab2-anln1&=&wa_zitab-anln1&.
&&&&wa_zitab2-anln2&=&wa_zitab-anln2&.
&&&&wa_zitab2-matkl&=&wa_zitab-matkl&.
&&&&wa_zitab2-ztext&=&wa_zitab-ztext&.
&&&&wa_zitab2-zrpid&=&wa_zitab-zrpid&.
&&&&wa_zitab2-index&=&wa_zitab-index&.
&&&&APPEND&wa_zitab2&TO&zitab2.
&&ENDLOOP.
ENDFORM.&&&&&&&&&&&&&&&&&&&&"UPLOAD_FILE
*&---------------------------------------------------------------------*
*&&&&&&&Form&&CALL_BAPI
*&---------------------------------------------------------------------*
*&&&&&&&text
*----------------------------------------------------------------------*
FORM&call_bapi&.
&&DATA:lenth&TYPE&i.
&&DATA:pos&TYPE&i.
&&DATA:num&TYPE&i.
&&DATA:num1&TYPE&i.
&&DATA:mod&TYPE&i.
&&LOOP&AT&zitab2.
&&&&ebelp&=&number.&&&&&"项目编号,同一个订单下,项目号以+10递增
&&&&IF&potextitem-text_id&IS&INITIAL
“若text_id和项目文本不为空,则赋值项目号和项目文本
&&&&&&AND&zitab2-ztext&IS&NOT&INITIAL.
&&&&&&potextitem-po_item&=&ebelp.
&&&&&&potextitem-text_id&=&'F01'.
&&&&&&potextitem-text_form&=&'*'.
&&&&&&potextitem-text_line&=&zitab2-ztext.&&&&"项目文本
&&&&&&APPEND&potextitem.
&&&&ENDIF.
&&&&CLEAR&potextitem.
&&&&AT&NEW&zterm.
&&&&&&PERFORM&zitab_head.”BAPI之head
&&&&ENDAT.
*--------------------------------------------------------------------------&
*--------------------------------------------------------------------------&
&&&&"&at&new&index.
&&&&PERFORM&zitab_item.”bapi
&&&&"endat.
*--------------------------------------------------------------------------&
*--------------------------------------------------------------------------&
&&&&PERFORM&zitab_itemx.”
Bapi of itemx
*--------------------------------------------------------------------------&
*--------------------------------------------------------------------------&
&&&&PERFORM&zitab_shde.”
Bapi of shde
*--------------------------------------------------------------------------&
*固定资产采购订单的固定资产号不能为空
*--------------------------------------------------------------------------&
&&&&PERFORM&zitab_anln1.”check
the field anln1
*--------------------------------------------------------------------------&
*--------------------------------------------------------------------------&
&&&&PERFORM&zitab_pricestyle.”check
the price style
&&&&AT&END&OF&zterm.
&&&&&&PERFORM&bapi_ajust_output.&
“创建订单完成之后的处理,若单位不符则报错(JM公司)且检查订单号不空
&&&&ENDAT.
*&&&&&&&&"手动添加需求计划号
*&&&&SELECT&*&INTO&CORRESPONDING&FIELDS&OF&TABLE&it_ekpo
*&&&&&&FROM&ekpo
*&&&&&&WHERE&ebeln&EQ&document.
*&&&&READ&TABLE&it_ekpo&INTO&wa_ekpo&WITH&KEY&ebeln&=&document&ebelp&=&number.
*&&&&wa_ekpo-zzrpn&=&zitab2-zrpid.
*&&&&MODIFY&ekpo&FROM&wa_ekpo.
&&&&x&=&x&+&1.
&&&&number&=&number&+&10.”项目号循环+10
&&ENDLOOP.
ENDFORM.&&&&&&&&&&&&&&&&&&&&"CALL_BAPI
*&---------------------------------------------------------------------*
*&&&&&&&Form&&OUTPUT_ALV
*&---------------------------------------------------------------------*
*&&&&&&&text
*----------------------------------------------------------------------*
FORM&output_alv&.
&&CALL&FUNCTION&'REUSE_ALV_GRID_DISPLAY'
&&&&EXPORTING
&&&&&&i_callback_program&&&&&&=&g_repid
&&&&&&it_fieldcat&&&&&&&&&&&&&=&l_alv_filedcat
&&&&&&is_layout&&&&&&&&&&&&&&&=&layout
&&&&&&i_save&&&&&&&&&&&&&&&&&&=&'A'
&&&&&&i_default&&&&&&&&&&&&&&&=&'A'
&&&&&&is_print&&&&&&&&&&&&&&&&=&gs_print
&&&&&&i_callback_user_command&=&'USER_COMMAND'
&&&&TABLES
&&&&&&t_outtab&&&&&&&&&&&&&&&&=&zlog.
ENDFORM.&&&&&&&&&&&&&&&&&&&&"OUTPUT_ALV
*&---------------------------------------------------------------------*
*&&&&&&&Form&&WRITE_LOG
*&---------------------------------------------------------------------*
*&&&&&&&text
*----------------------------------------------------------------------*
*&&&&&&--&P_TYPE&&&&&text
*&&&&&&--&P_INDEX&&&&text
*&&&&&&--&P_DOC&&&&&&text
*&&&&&&--&P_MESSAGE&&text
*----------------------------------------------------------------------*
FORM&write_log&&USING&&&p_type
&&&&&&&&&&&&&&&&&&&&&&&&p_index
&&&&&&&&&&&&&&&&&&&&&&&&p_doc
&&&&&&&&&&&&&&&&&&&&&&&&p_message.
&&zlog-index&=&p_index.
&&zlog-messg&=&p_message.
&&zlog-ebeln&=&p_doc.
&&CASE&p_type.
&&&&WHEN&'S'.
&&&&&&zlog-icon&=&'@5B@'.
&&&&WHEN&'E'.
&&&&&&zlog-icon&=&'@5C@'.
&&&&WHEN&'W'.
&&&&&&zlog-icon&=&'@5D@'.
&&&&WHEN&'A'.
&&&&&&zlog-icon&=&'@5C@'.
&&ENDCASE.
&&APPEND&zlog.
&&"CLEAR&zlog.
ENDFORM.&&&&&&&&&&&&&&&&&&&&"WRITE_LOG
*&---------------------------------------------------------------------*
*&&&&&&&Form&&ALV_TOP_OF_PAGE
*&---------------------------------------------------------------------*
*&&&&&&&text
*----------------------------------------------------------------------*
*&&&&&&--&CL_DD&&&&&&text
*----------------------------------------------------------------------*
FORM&alv_top_of_page&USING&cl_dd&TYPE&REF&TO&cl_dd_document.
&&DATA:&m_p&TYPE&i.
&&DATA:&m_buff&TYPE&string.
&&m_buff&=&'&html&&font&size=5&&b&BAPI导入PO消息&/font&'.
&&CALL&METHOD&cl_dd-&html_insert
&&&&EXPORTING
&&&&&&contents&=&m_buff
&&&&CHANGING
&&&&&&position&=&m_p.
&&m_buff&=&'&/html&'.
&&CALL&METHOD&cl_dd-&html_insert
&&&&EXPORTING
&&&&&&contents&=&m_buff
&&&&CHANGING
&&&&&&position&=&m_p.
ENDFORM.&&&&&&&&&&&&&&&&&&&&"ALV_TOP_OF_PAGE
*&---------------------------------------------------------------------*
*&&&&&&&Form&&USER_COMMAND
*&---------------------------------------------------------------------*
*&&&&&&&text
*----------------------------------------------------------------------*
*&&&&&&--&UCOMM&&&&&&text
*&&&&&&--&SELFIELD&&&text
*----------------------------------------------------------------------*
FORM&user_command&USING&ucomm&LIKE&sy-ucomm
selfield&TYPE&slis_selfield.&&&&&&&&
“双击事件,双击订单号,进入采购订单显示页
&&READ&TABLE&zlog&INDEX&selfield-tabindex.
&&CHECK&sy-subrc&=&0.
&&CASE&ucomm.
&&&&WHEN&'&IC1'.
&&&&&&IF&zlog-ebeln&&&&''.
&&&&&&&&SET&&PARAMETER&ID&'BES'&FIELD&zlog-ebeln.
&&&&&&&&CALL&&TRANSACTION&'ME23N'&.
&&&&&&ENDIF.
&&ENDCASE.
ENDFORM.&&&&&&&&&&&&&&&&&&&&"USER_COMMAND
*&---------------------------------------------------------------------*
*&&&&&&&Form&&HEAD
*&---------------------------------------------------------------------*
FORM&zitab_head.”BAPI OF HEAD,添加采购订单抬头数据
&&READ&TABLE&zitab2&INDEX&x.
&&CALL&FUNCTION&'CONVERSION_EXIT_ALPHA_INPUT'
&&&&EXPORTING
&&&&&&input&&=&zitab2-lifnr
&&&&IMPORTING
&&&&&&output&=&head-vendor.
&&head-doc_type&=&zitab2-bsart.
&&head-purch_org&=&zitab2-ekorg.
&&head-pur_group&=&zitab2-ekgrp.
&&head-comp_code&=&zitab2-bukrs.
&&head-pmnttrms&=&zitab2-zterm.
&&it_popartner-langu&&&&&&&=&sy-langu.”前空位补0
&&CALL&FUNCTION&'CONVERSION_EXIT_ALPHA_INPUT'
&&&&EXPORTING
&&&&&&input&&=&zitab2-lifnr
&&&&IMPORTING
&&&&&&output&=&zitab2-lifnr.
*----------------------------------------------开票方OA,PI,VN等的转换处理(JM公司)
&&SELECT&parvw&lifn2&INTO&(it_popartner-partnerdesc,&it_popartner-buspartno)
&&&&FROM&wyt3
&&&&WHERE&lifnr&=&zitab2-lifnr
&&&&&&AND&ekorg&=&zitab2-ekorg.
*--------------------------------------------------------------------------&
***&&&&&&&CHANGE
*--------------------------------------------------------------------------&
*CHANGE&THE&VALUE&FOR&SYSTEM
*--------------------------------------------------------------------------&
&&&&CASE&it_popartner-partnerdesc.
&&&&&&WHEN&'BA'.
&&&&&&&&it_popartner-partnerdesc&=&'OA'.
&&&&&&WHEN&'LF'.
&&&&&&&&it_popartner-partnerdesc&=&'VN'.
&&&&&&WHEN&'RS'.
&&&&&&&&it_popartner-partnerdesc&=&'PI'.
&&&&&&WHEN&OTHERS.
&&&&&&&&EXIT.
&&&&ENDCASE.
&&&&IF&it_popartner-buspartno&IS&NOT&INITIAL.
&&&&&&CALL&FUNCTION&'CONVERSION_EXIT_ALPHA_INPUT'
&&&&&&&&EXPORTING
&&&&&&&&&&input&&=&it_popartner-buspartno&&&&&&&&&&&&&&&&&&&&&&"合伙人
&&&&&&&&IMPORTING
&&&&&&&&&&output&=&it_popartner-buspartno.
&&&&ENDIF.
&&&&APPEND&it_popartner.
&&ENDSELECT.
&&"CLEAR&&it_popartner.
&&"REFRESH&it_popartner.
*----------------------------------------------bapi of
headx处理,抬头数据更改参数
&&headx-vendor&=&'X'.
&&headx-doc_type&=&'X'.
&&headx-purch_org&=&'X'.
&&headx-pur_group&=&'X'.
&&headx-comp_code&=&'X'.
&&headx-currency&=&'X'.
&&headx-pmnttrms&&=&'X'.
&&"append&headx.
ENDFORM.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&"ENDFORM
*--------------------------------------------------------------------------&
***&&&&&&&FORM&ITEM
*--------------------------------------------------------------------------&
*--------------------------------------------------------------------------&
FORM&zitab_item.
*----------------------bapi of item处理,订单项目数据处理
&&item-free_item&=&zitab2-umson.
&&item-ret_item&&=&zitab2-retpo.
&&item-po_item&=&ebelp.
&&item-plant&=&zitab2-werks.
&&item-stge_loc&=&zitab2-lgort.
&&item-po_unit&=&zitab2-meins.
*&&item-price_unit&=&zitab2-price_unit.
&&CALL&FUNCTION&'CONVERSION_EXIT_ALPHA_INPUT'
&&&&EXPORTING
&&&&&&input&&=&zitab2-matnr
&&&&IMPORTING
&&&&&&output&=&item-material.
&&item-quantity&=&zitab2-menge.
*&&item-net_price&=&zitab2-netpr.
&&item-tax_code&&&=&zitab2-mwskz.
&&item-po_price&=&'1'.&&
“价格采纳,1表总价(含 税),2表净值总价*税
&&item-no_rounding&=&'X'.”禁止舍入
&&APPEND&item.
*-----------------------项目号,项目文本(增强字段)
&&itab-ebelp&=&ebelp.
&&itab-zrpid&=&zitab2-zrpid.
&&APPEND&itab.
&&CLEAR&itab.
&&"&CLEAR&item.
ENDFORM.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&"ENDFORM
*--------------------------------------------------------------------------&
***&&&&&&&FORM&ITEMX
*--------------------------------------------------------------------------&
*--------------------------------------------------------------------------&
FORM&zitab_itemx.”bapi of itemx,项目更改参数处理
&&itemx-po_item&=&ebelp.
&&itemx-free_item&=&'X'.
&&itemx-ret_item&=&'X'.
&&itemx-plant&=&'X'.
&&IF&zitab2-werks&IS&NOT&INITIAL.”取消库存地必输项
&&&&itemx-stge_loc&=&'X'.
&&itemx-material&=&'X'.
&&itemx-quantity&=&'X'.
&&itemx-net_price&=&'X'.
&&itemx-trackingno&=&'X'.
&&itemx-po_price&=&'X'.
&&itemx-no_rounding&=&'X'.
&&itemx-price_unit&=&'X'.
&&itemx-po_unit&=&'X'.
&&IF&NOT&zitab2-mwskz&IS&INITIAL.”取消税码必输
&&&&itemx-tax_code&&&=&'X'.
&&itemx-po_price&=&'X'.
&&APPEND&itemx.
&&"CLEAR&itemx.
ENDFORM.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&"ENDFORM
*--------------------------------------------------------------------------&
***&&&&&&&FORM&SHDE
*--------------------------------------------------------------------------&
*--------------------------------------------------------------------------&
FORM&zitab_shde. “bapi of shde
,采购订单交货计划行字段处理
&&shde-po_item&=&ebelp.
&&shde-sched_line&=&'0001'.
&&shde-delivery_date&=&zitab2-eindt.
&&shde-quantity&=&zitab2-menge.
&&APPEND&shde.
&&"CLEAR&shde.
“-----------------bapi of shdex ,采购订单交货计划行字段更改参数处理
&&shdex-po_item&=&ebelp.
&&shdex-sched_line&=&'0001'.
&&shdex-delivery_date&=&'X'.
&&shdex-quantity&=&'X'.
&&APPEND&shdex.
&&"CLEAR&shdex.
ENDFORM.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&"ENDFORM
*--------------------------------------------------------------------------&
***&&&&&&&FORM&ANLN1
*--------------------------------------------------------------------------&
*--------------------------------------------------------------------------&
FORM&zitab_anln1.
&&CASE&zitab2-bsart.”订单类型特殊处理
&&&&WHEN&'ZNB2'.”固定资产订单须有资产编号
&&&&&&IF&zitab2-anln1&IS&INITIAL.
&&&&&&&&MESSAGE&s008.
&&&&&&ENDIF.
&&&&WHEN&'ZNB1'.”标准采购订单不含退货项
&&&&&&IF&zitab2-retpo&IS&NOT&INITIAL.
&&&&&&&&"ZITAB2-RETPO&=&''.
&&&&&&&&MESSAGE&e001(00)&WITH&'标准订单不含退货项'.
&&&&&&ENDIF.
&&&&WHEN&OTHERS.
&&ENDCASE.
ENDFORM.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&"ENDFORM
*--------------------------------------------------------------------------&
***&&&&&&&FORM&ZITAB_PRICESTYLE
*--------------------------------------------------------------------------&
*--------------------------------------------------------------------------&
FORM&zitab_pricestyle.”采购价格类型处理
*采购价格类型处理1、若所创建的订单物料在此供应商、采购组织,工厂下有信息记录,则清空PB00价格类型,且插入一条*类型为PBXX的价格,含税价为导入文件中的价格
&&&&&&&&&&&
2、若所创建的订单物料在此供应商、采购组织,工厂下无信息记录,则先删除原PBXX价格类型行,插入*一条新的PBXX类型的价格,含税价为导入文件中的价格
&&CALL&FUNCTION&'CONVERSION_EXIT_ALPHA_INPUT'
&&&&EXPORTING
&&&&&&input&&=&zitab2-lifnr
&&&&IMPORTING
&&&&&&output&=&zitab2-lifnr.
&&DATA:&l_infnr&TYPE&infnr.
&&SELECT&SINGLE&eina~infnr&INTO&l_infnr&&&&&
“查询采购信息记录,若SY-SUBRC为0,则有反之则无
&&FROM&eina&INNER&JOIN&eine&ON&eina~infnr&=&eine~infnr
&&WHERE&eina~matnr&=&zitab2-matnr
&&&&AND&eina~lifnr&=&zitab2-lifnr
&&&&AND&eine~ekorg&=&zitab2-ekorg
&&&&AND&eine~werks&=&zitab2-werks
&&&&AND&eina~loekz&&&&'X'
&&&&AND&eine~loekz&&&&'X'.
.&&IF&sy-subrc&=&0.
&&&&it_cond-itm_number&=&ebelp.
&&&&it_cond-cond_type&=&'PB00'.&&&&"&GIVE&THE&PRICING&CONDITION&TYPE&THAT&DERIVES&NETPRICE
&&&&it_cond-cond_value&=&0&."含税价
&&&&it_cond-currency&=&'CNY'.
&&&&it_cond-change_id&=&'U'.
&&&&it_cond-cond_p_unt&=&1.
&&&&it_cond-cond_updat&=&'X'.
&&&&it_cond-condchaman&=&'X'.
&&&&APPEND&it_cond.
&&&&it_cond-itm_number&=&ebelp.
&&&&it_cond-cond_type&=&'PBXX'.&&&&"&GIVE&THE&PRICING&CONDITION&TYPE&THAT&DERIVES&NETPRICE
&&&&it_cond-cond_value&=&zitab2-netpr."含税价
&&&&it_cond-cond_p_unt&=&zitab2-price_unit.
&&&&it_cond-currency&=&'CNY'.
&&&&it_cond-change_id&=&'D'.
&&&&it_cond-cond_p_unt&=&zitab2-price_unit.
&&&&APPEND&it_cond.
&&it_cond-itm_number&=&ebelp.
&&it_cond-cond_type&=&'PBXX'.&&&&"&GIVE&THE&PRICING&CONDITION&TYPE&THAT&DERIVES&NETPRICE
&&it_cond-cond_value&=&zitab2-netpr."含税价
&&it_cond-cond_p_unt&=&zitab2-price_unit.
&&it_cond-currency&=&'CNY'.
&&it_cond-change_id&=&'I'.
&&it_cond-cond_p_unt&=&zitab2-price_unit.
&&APPEND&it_cond.
&&it_condx-itm_number&=&ebelp.
&&it_condx-itm_numberx&=&'X'.
&&it_condx-cond_type&=&'X'.
&&it_condx-cond_value&=&'X'.
&&it_condx-currency&=&'X'.
&&it_condx-change_id&=&'X'.
&&it_condx-cond_p_unt&=&'X'.
&&it_condx-condchaman&=&'X'.
&&it_condx-cond_updat&=&'X'.
&&APPEND&it_condx.
ENDFORM.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&"ENDFORM
*&---------------------------------------------------------------------*
*&&&&&&&Form&&BAPI_AJUST_OUTPUT
*&---------------------------------------------------------------------*
*&&&&&&&text
*----------------------------------------------------------------------*
FORM&bapi_ajust_output.
&&READ&TABLE&zitab2&INDEX&x.
*-------------------------物料单位判断处理,采购信息记录优先,其次物料主数据
&&DATA:&l_meins&TYPE&meins,
&&&&&&&&l_bstme&TYPE&bstme,
&&&&&&&&l_vabme&TYPE&vabme.
&&DATA:&l_flag&TYPE&c.
&&CLEAR:&l_flag,&l_meins,&l_bstme,&l_vabme.
&&LOOP&AT&item.
&&&&SELECT&SINGLE&eina~meins&INTO&l_meins
&&&&FROM&eina&INNER&JOIN&eine&ON&eina~infnr&=&eine~infnr
&&&&WHERE&eina~matnr&=&item-material
&&&&&&AND&eina~lifnr&=&head-vendor
&&&&&&AND&eine~ekorg&=&head-purch_org
&&&&&&AND&eine~werks&=&item-plant
&&&&&&AND&eina~loekz&&&&'X'
&&&&&&AND&eine~loekz&&&&'X'.
&&&&IF&sy-subrc&&&&0.
&&&&&&SELECT&SINGLE&bstme&meins&vabme&INTO&(l_bstme,&l_meins,&l_vabme)
&&&&&&FROM&mara
&&&&&&WHERE&matnr&=&item-material.
&&&&&&IF&sy-subrc&=&0.
&&&&&&&&IF&l_bstme&IS&NOT&INITIAL&AND&&l_bstme&&&&item-po_unit&AND&l_vabme&&&&'01'&.
&&&&&&&&&&l_flag&=&'X'.
&&&&&&&&&&PERFORM&write_log&USING&'E'&zitab2-index&''&'单位错误'.
&&&&&&&&&&EXIT.
&&&&&&&&ELSEIF&l_bstme&&&&item-po_unit&AND&l_meins&&&&item-po_unit.
&&&&&&&&&&l_flag&=&'X'.
&&&&&&&&&&PERFORM&write_log&USING&'E'&zitab2-index&''&'单位错误'.
&&&&&&&&&&EXIT.
&&&&&&&&ENDIF.
&&&&&&ENDIF.
&&&&&&DATA:&ls_t006a&TYPE&t006a.
&&&&&&IF&l_meins&&&&item-po_unit.
&&&&&&&&SELECT&SINGLE&*&INTO&ls_t006a
“分配内部语言到相关单位单位有内部和商业之分表中所存和系统显示不同
&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&FROM&t006a&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&WHERE&msehi&=&l_meins
&&&&&&&&&&AND&mseh3&=&item-po_unit.
&&&&&&&&IF&sy-subrc&&&&0.
*&&&&&&&&&AND&&l_meins&&&&'TO'&AND&item-po_unit&&&&'T'&&and&l_meins&&&&'PAK'&AND&item-po_unit&&&&'PAC'&.
&&&&&&&&&&l_flag&=&'X'.
&&&&&&&&&&PERFORM&write_log&USING&'E'&zitab2-index&''&'单位错误'.
&&&&&&&&&&EXIT.
&&&&&&&&ENDIF.
&&&&&&ENDIF.
&&&&ENDIF.
&&ENDLOOP.
&&IF&l_flag&&&&'X'.
&&&&CALL&FUNCTION&'BAPI_PO_CREATE1'&&&&
“调用创建BAPI
&&&&&&EXPORTING
&&&&&&&&poheader&&&&&&&&&=&head
&&&&&&&&poheaderx&&&&&&&&=&headx
*&&&&&&no_price_from_po&=&'X'
&&&&&&IMPORTING
&&&&&&&&exppurchaseorder&=&document&&&
“生成采购订单号
&&&&&&TABLES
&&&&&&&&return&&&&&&&&&&&=&return
&&&&&&&&poitem&&&&&&&&&&&=&item
&&&&&&&&poitemx&&&&&&&&&&=&itemx
&&&&&&&&poschedule&&&&&&&=&shde
&&&&&&&&poschedulex&&&&&&=&shdex
&&&&&&&&poaccount&&&&&&&&=&acot
&&&&&&&&popartner&&&&&&&&=&it_popartner&&&"合伙人
&&&&&&&&poaccountx&&&&&&&=&acotx
&&&&&&&&pocond&&&&&&&&&&&=&it_cond
&&&&&&&&pocondx&&&&&&&&&&=&it_condx
&&&&&&&&potextitem&&&&&&&=&potextitem.
*--------------------------------------------------------------------------&
*判断RETURN类型
*--------------------------------------------------------------------------&
*&&READ&TABLE&return&WITH&KEY&type&=&'E'.
*&&IF&sy-subrc&=&0.
*&&&&CALL&FUNCTION&'BAPI_TRANSACTION_ROLLBACK'.
*&&&&CALL&FUNCTION&'BAPI_TRANSACTION_COMMIT'
*&&&&&&EXPORTING
*&&&&&&&&wait&=&'X'.
&&&&IF&document&NE&''&AND&document+0(1)&NE&'#'.
&&&&&&CALL&FUNCTION&'BAPI_TRANSACTION_COMMIT'
&&&&&&&&EXPORTING
&&&&&&&&&&wait&=&'X'.”等待延时
&&&&&&CONCATENATE&'采购订单在号'&document&'下被创建'&INTO&message.
&&&&&&PERFORM&write_log&USING&'S'&zitab2-index
&&&&&&&&&&&&document&message.
&&&&&&MESSAGE&s006.
&&&&&&"手动添加需求计划号
&&&&&&SELECT&*&INTO&CORRESPONDING&FIELDS&OF&TABLE&it_ekpo
&&&&&&&&FROM&ekpo
&&&&&&&&WHERE&ebeln&EQ&document.
&&&&&&IF&sy-subrc&=&0.
&&&&&&&&LOOP&AT&it_ekpo&INTO&wa_ekpo&WHERE&ebeln&=&document.
&&&&&&&&&&READ&TABLE&itab&INTO&wa_itab&WITH&KEY&ebelp&=&wa_ekpo-ebelp.
&&&&&&&&&&CHECK&sy-subrc&=&0.
&&&&&&&&&&wa_ekpo-zzrpn&=&wa_itab-zrpid.
&&&&&&&&&&UPDATE&ekpo&SET&zzrpn&=&wa_itab-zrpid
&&&&&&&&&&&&&&&&&&&&WHERE&ebeln&=&document
&&&&&&&&&&&&&&&&&&&&&&AND&ebelp&=&wa_ekpo-ebelp.
&&&&&&&&&&COMMIT&WORK.
&&&&&&&&ENDLOOP.
&&&&&&ENDIF.
&&&&&&CALL&FUNCTION&'BAPI_TRANSACTION_ROLLBACK'.
&&&&&&LOOP&AT&return&WHERE&type&=&'E'.
&&&&&&&&PERFORM&write_log&USING&return-type&zitab2-index&''&return-message&.
&&&&&&ENDLOOP.
&&&&ENDIF.
*------------------------------刷新,很重要的一步,一个都不能落下,因为数据量很大,容易出错
&&CLEAR:&head,headx,return,item,itemx,shde,shdex,acot,acotx,document,it_cond,it_condx,&number,itab,wa_itab.
&&REFRESH:&return,item,itemx,shde,shdex,acot,acotx,potextitem,it_popartner,it_cond,it_condx,itab.
ENDFORM.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&"ENDFORM
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 sap供应商清单 的文章

 

随机推荐