SAP ABAP 采购订单批导
一.主程序
*&---------------------------------------------------------------------*
*& Report ZSF_BAPI_02
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZSF_BAPI_02.INCLUDE ZSF_BAPI_02_TOP. "全局变量INCLUDE ZSF_BAPI_02_SCREEN."选择屏幕INCLUDE ZSF_BAPI_02_F01. "获取数据到内表INCLUDE ZSF_BAPI_02_C01. "导入数据判断INCLUDE ZSF_BAPI_02_O01. "ALV显示INCLUDE ZSF_BAPI_02_I01. "用户点击事件INCLUDE ZSF_BAPI_02_BAPI01."调用BAPIINITIALIZATION."模板下载图标设置START-OF-SELECTION.PERFORM UPLOUD_EXCEL. "导入EXCEL数据
二.全局变量
TABLES : SSCRFIELDS.
TYPE-POOLS: ICON. "引用图标TYPES: BEGIN OF TY_DATA,"采购订单抬头BSART TYPE EKKO-BSART, "采购订单类型LLIEF TYPE EKKO-LLIEF, "供应商代码EKORG TYPE EKKO-EKORG, "采购组织EKGRP TYPE EKKO-EKGRP, "采购组BUKRS TYPE EKKO-BUKRS, "公司代码EBELP TYPE EKPO-EBELP, "采购凭证项目编号KNTTP TYPE EKPO-KNTTP, "科目分配类别BSTYP TYPE EKPO-BSTYP, "项目类别MATNR TYPE EKPO-MATNR, "物料编码MENGE TYPE EKPO-MENGE, "订单数量MEINS TYPE EKPO-MEINS, "订单单位EINDT TYPE EKET-EINDT, "交货日期(需要转换)char8-char10WERKS TYPE EKPO-WERKS, "工厂LGORT TYPE EKPO-LGORT, "库存地点END OF TY_DATA.DATA: GT_DATA TYPE TABLE OF TY_DATA,GW_DATA TYPE TY_DATA.DATA: BEGIN OF GT_NUM OCCURS 0,NUM TYPE I VALUE 0,END OF GT_NUM.DATA: BEGIN OF GW_ALV,NUM, "自主定义编号BOX, "自主选择按钮ICON(4), "校验灯 图标EBELN TYPE BAPIMEPOHEADER-PO_NUMBER, "接受采购凭证编号LMESS TYPE STRING. "测试信息INCLUDE STRUCTURE GW_DATA. "定义结构体继承的具体语句为:INCLUDE STRUCTURE
DATA: END OF GW_ALV,GT_ALV LIKE STANDARD TABLE OF GW_ALV."参照gs_alv创建内表*定义alv显示用到的全局参数
*定义FIELDCAT内表和工作区
DATA :GT_FIELDCAT TYPE LVC_T_FCAT WITH HEADER LINE.
*定义布局
DATA: GW_LAYOUT TYPE LVC_S_LAYO,GW_GRID_SETTINGS TYPE LVC_S_GLAY.
*设置字段排序
DATA : GT_SORT TYPE LVC_T_SORT WITH HEADER LINE.
*定义alv对象,alv回调时候用,一般不用
DATA: GR_GRID TYPE REF TO CL_GUI_ALV_GRID.*为FIELDCAT定义宏,其中&1表示占位符
*以下含有“是否”的值范围内为空和X
DEFINE DE_FIELDCAT.CLEAR GT_FIELDCAT.GT_FIELDCAT-FIELDNAME = &1. "字段名GT_FIELDCAT-SCRTEXT_L = &2. "字段长描述GT_FIELDCAT-KEY = &3. "主键,蓝底显示,默认冻结列GT_FIELDCAT-NO_ZERO = &4. "不显示0值GT_FIELDCAT-EDIT = &5. "是否编辑GT_FIELDCAT-REF_FIELD = &6. "参考字段 &6 &7 一起使用GT_FIELDCAT-REF_TABLE = &7. "参考表 &6 &7 一起使用GT_FIELDCAT-FIX_COLUMN = &8. "冻结列GT_FIELDCAT-ICON = &9. "图标APPEND GT_FIELDCAT.
END-OF-DEFINITION.
三.选择屏幕
(在文本消息中给P_FILE赋值为‘需要上传的文件:’)
SELECTION-SCREEN BEGIN OF BLOCK B1K1 WITH FRAME TITLE TEXT-T01.PARAMETERS: P_FILE LIKE RLGRAP-FILENAME . "上传文件SELECTION-SCREEN END OF BLOCK B1K1.AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE. "文件搜索帮助PERFORM GET_FILENAME.
*&---------------------------------------------------------------------*
*& Form GET_FILENAME
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM GET_FILENAME .
"方法二:CALL FUNCTION 'F4_FILENAME'EXPORTINGPROGRAM_NAME = SYST-CPROG "此处填SY-CPROG同样DYNPRO_NUMBER = SYST-DYNNRFIELD_NAME = ' 'IMPORTINGFILE_NAME = P_FILE.
*
ENDFORM.
四.获取数据到内表
*&---------------------------------------------------------------------*
*& 包含 ZSF_BAPI_02_F01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form UPLOUD_EXCEL
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM UPLOUD_EXCEL ."显示ALV,此步骤不进行检查和批导工作,仅作为EXCEL数据展示用.第一次ALV展示!DATA:LT_INTERN TYPE STANDARD TABLE OF KCDE_INTERN_STRUC, "定义输出的内表LS_INTERN TYPE KCDE_INTERN_STRUC, "定义内表所属的工作区L_COL TYPE I. "定义行数FIELD-SYMBOLS:. "在ABAP编程中使用非常广泛,类似于指针,可以指代任何变量。"当不输入时,继承赋给它的变量的所有属性"当输入时,赋给它的变量必须与同类型。CHECK P_FILE IS NOT INITIAL.CALL FUNCTION 'KCD_EXCEL_OLE_TO_INT_CONVERT'EXPORTINGFILENAME = P_FILE"读取导入的excel信息I_BEGIN_COL = 1 "从excel表格的第一列开始读取I_BEGIN_ROW = 2 "从excel表格的第二行开始读取,因为第一行存储所填信息字段I_END_COL = 39 "最多读取的列数I_END_ROW = 10000 "最多读取的数据行数,也就是一次做多9999行数据TABLESINTERN = LT_INTERNEXCEPTIONSINCONSISTENT_PARAMETERS = 1UPLOAD_OLE = 2OTHERS = 3.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.CHECK LT_INTERN IS NOT INITIAL. "判断值已传入内表中LOOP AT LT_INTERN INTO LS_INTERN.MOVE LS_INTERN-COL TO L_COL. "将列号存入L_COL中ASSIGN COMPONENT L_COL OF STRUCTURE GW_DATA TO . "再GW_EXCEL中的列号存入中MOVE LS_INTERN-VALUE TO .AT END OF ROW.CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'EXPORTINGINPUT = GW_DATA-MATNRIMPORTINGOUTPUT = GW_DATA-MATNREXCEPTIONSLENGTH_ERROR = 1OTHERS = 2.APPEND GW_DATA TO GT_DATA.CLEAR GW_DATA.ENDAT.ENDLOOP."第一次调用ALV显示8
CLEAR GT_ALV. "防止数据重复,清空内表LOOP AT GT_DATA INTO GW_DATA.
MOVE-CORRESPONDING GW_DATA TO GW_ALV.
"为每条数据编号
GW_ALV-NUM = GT_NUM-NUM + 1 .
GT_NUM-NUM = GT_NUM-NUM + 1 .APPEND GT_NUM.APPEND GW_ALV TO GT_ALV.CLEAR GW_ALV.ENDLOOP.
"调用ALV显示子程序PERFORM FRM_RETURN.
ENDFORM.
五.对导入的数据进行判断
*&---------------------------------------------------------------------*
*& 包含 ZSF_BAPI_02_C01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form FRM_CHECK_DATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM FRM_CHECK_DATA .TYPES: BEGIN OF TY_EKKO,BSART TYPE EKKO-BSART, "采购订单类型LLIEF TYPE EKKO-LLIEF, "供应商代码EKORG TYPE EKKO-EKORG, "采购组织EKGRP TYPE EKKO-EKGRP, "采购组END OF TY_EKKO.TYPES: BEGIN OF TY_EKPO,MATNR TYPE EKPO-MATNR,MENGE TYPE EKPO-MENGE,WERKS TYPE EKPO-WERKS,END OF TY_EKPO.DATA: GT_EKKO TYPE TABLE OF TY_EKKO,GW_EKKO TYPE TY_EKKO,GT_EKPO TYPE TABLE OF TY_EKPO,GW_EKPO TYPE TY_EKPO,LV_SIGN(1). "标记SELECTBSARTLLIEFEKORGEKGRPFROM EKKOINTO CORRESPONDING FIELDS OF TABLE GT_EKKO.SELECTMATNRWERKSFROM EKPOINTO CORRESPONDING FIELDS OF TABLE GT_EKPO.SORT: GT_EKKO BY BSART LLIEF EKORG EKGRP ASCENDING,GT_EKPO BY MATNR WERKS ASCENDING.LOOP AT GT_DATA INTO GW_DATA.MOVE-CORRESPONDING GW_DATA TO GW_ALV.IF GW_ALV-BSART = ''.LV_SIGN = 'R'.GW_ALV-LMESS = '采购订单类型为必填'.ENDIF.IF GW_ALV-LLIEF = ''.LV_SIGN = 'R'.IF GW_ALV-LMESS <> ''.CONCATENATE GW_ALV-LMESS '||' INTO GW_ALV-LMESS.ENDIF.CONCATENATE GW_ALV-LMESS '供应商代码为必输' INTO GW_ALV-LMESS.ENDIF.IF GW_ALV-EKORG = ''.LV_SIGN = 'R'.IF GW_ALV-LMESS <> ''.CONCATENATE GW_ALV-LMESS '||' INTO GW_ALV-LMESS.ENDIF.CONCATENATE GW_ALV-LMESS '采购组织为必输' INTO GW_ALV-LMESS.ENDIF.IF GW_ALV-EKGRP = ''.LV_SIGN = 'R'.IF GW_ALV-LMESS <> ''.CONCATENATE GW_ALV-LMESS '||' INTO GW_ALV-LMESS.ENDIF.CONCATENATE GW_ALV-LMESS '采购组为必输' INTO GW_ALV-LMESS.ENDIF.IF GW_ALV-MATNR = ''.LV_SIGN = 'R'.IF GW_ALV-LMESS <> ''.CONCATENATE GW_ALV-LMESS '||' INTO GW_ALV-LMESS.ENDIF.CONCATENATE GW_ALV-LMESS '物料编码为必输' INTO GW_ALV-LMESS.ENDIF.IF GW_ALV-MENGE = ''.LV_SIGN = 'R'.IF GW_ALV-LMESS <> ''.CONCATENATE GW_ALV-LMESS '||' INTO GW_ALV-LMESS.ENDIF.CONCATENATE GW_ALV-LMESS '订单数量为必填' INTO GW_ALV-LMESS.ENDIF.IF GW_ALV-EINDT = ''.LV_SIGN = 'R'.IF GW_ALV-LMESS <> ''.CONCATENATE GW_ALV-LMESS '||' INTO GW_ALV-LMESS.ENDIF.CONCATENATE GW_ALV-LMESS '交货日期为必输' INTO GW_ALV-LMESS.ENDIF.IF GW_ALV-WERKS = ''.LV_SIGN = 'R'.IF GW_ALV-LMESS <> ''.CONCATENATE GW_ALV-LMESS '||' INTO GW_ALV-LMESS.ENDIF.CONCATENATE GW_ALV-LMESS '工厂为必输' INTO GW_ALV-LMESS.ENDIF.IF LV_SIGN = 'R'.GW_ALV-ICON = ICON_LED_RED.ELSE.READ TABLE GT_EKKO WITH KEY BSART = GW_ALV-BSART BINARY SEARCH TRANSPORTING NO FIELDS .IF SY-SUBRC <> 0.LV_SIGN = 'Y'.IF GW_ALV-LMESS <> ''.CONCATENATE GW_ALV-LMESS '||' INTO GW_ALV-LMESS.ENDIF.CONCATENATE GW_ALV-LMESS '不存在该采购订单类型请校验' INTO GW_ALV-LMESS.ENDIF.READ TABLE GT_EKKO WITH KEY LLIEF = GW_ALV-LLIEF BINARY SEARCH TRANSPORTING NO FIELDS .IF SY-SUBRC <> 0.LV_SIGN = 'Y'.IF GW_ALV-LMESS <> ''.CONCATENATE GW_ALV-LMESS '||' INTO GW_ALV-LMESS.ENDIF.CONCATENATE GW_ALV-LMESS '不存在该供货商请校验' INTO GW_ALV-LMESS.ENDIF.READ TABLE GT_EKKO WITH KEY EKORG = GW_ALV-EKORG BINARY SEARCH TRANSPORTING NO FIELDS .IF SY-SUBRC <> 0.LV_SIGN = 'Y'.IF GW_ALV-LMESS <> ''.CONCATENATE GW_ALV-LMESS '||' INTO GW_ALV-LMESS.ENDIF.CONCATENATE GW_ALV-LMESS '不存在该采购组织请校验' INTO GW_ALV-LMESS.ENDIF.READ TABLE GT_EKKO WITH KEY EKGRP = GW_ALV-EKGRP BINARY SEARCH TRANSPORTING NO FIELDS .IF SY-SUBRC <> 0.LV_SIGN = 'Y'.IF GW_ALV-LMESS <> ''.CONCATENATE GW_ALV-LMESS '||' INTO GW_ALV-LMESS.ENDIF.CONCATENATE GW_ALV-LMESS '不存在该采购组请校验' INTO GW_ALV-LMESS.ENDIF.READ TABLE GT_EKPO WITH KEY MATNR = GW_ALV-MATNR BINARY SEARCH TRANSPORTING NO FIELDS .IF SY-SUBRC <> 0.LV_SIGN = 'Y'.IF GW_ALV-LMESS <> ''.CONCATENATE GW_ALV-LMESS '||' INTO GW_ALV-LMESS.ENDIF.CONCATENATE GW_ALV-LMESS '不存在该物料编号请校验' INTO GW_ALV-LMESS.ENDIF.READ TABLE GT_EKPO WITH KEY WERKS = GW_ALV-WERKS BINARY SEARCH TRANSPORTING NO FIELDS .IF SY-SUBRC <> 0.LV_SIGN = 'Y'.IF GW_ALV-LMESS <> ''.CONCATENATE GW_ALV-LMESS '||' INTO GW_ALV-LMESS.ENDIF.CONCATENATE GW_ALV-LMESS '不存在该工厂请校验' INTO GW_ALV-LMESS.ENDIF.ENDIF.IF LV_SIGN = 'Y'.GW_ALV-ICON = ICON_LED_YELLOW.ELSEIF LV_SIGN = ''.GW_ALV-ICON = ICON_LED_GREEN.ENDIF.APPEND GW_ALV TO GT_ALV.CLEAR GW_ALV.CLEAR GW_DATA.CLEAR LV_SIGN.ENDLOOP.ENDFORM.
六.ALV显示
*&---------------------------------------------------------------------*
*& 包含 ZSF_BAPI_02_O01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form FRM_RETURN
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM FRM_RETURN .REFRESH GT_FIELDCAT.
" DE_FIELDCAT 'NUM' '' '' '' '' '' '' '' ''. "不显示 用于标记的编号
" DE_FIELDCAT 'BOX' '' '' '' '' '' '' '' ''. "不显示 用于选择的标记DE_FIELDCAT 'ICON' '校验灯' '' '' '' '' '' '' 'X'.DE_FIELDCAT 'EBELN' '订单编号' '' '' '' '' '' '' ''.DE_FIELDCAT 'BSART' '采购订单类型' '' '' '' '' '' '' ''.DE_FIELDCAT 'LLIEF' '供应商代码' '' '' '' '' '' '' ''.DE_FIELDCAT 'EKORG' '采购组织' '' '' '' '' '' '' ''.DE_FIELDCAT 'EKGRP' '采购组' '' '' '' '' '' '' ''.DE_FIELDCAT 'BUKRS' '公司代码' '' '' '' '' '' '' ''.DE_FIELDCAT 'EBELP' '采购凭证项目编号' '' '' '' '' '' '' ''.DE_FIELDCAT 'KNTTP' '科目分配类别' '' '' '' '' '' '' ''.DE_FIELDCAT 'BSTYP' '项目类别' '' '' '' '' '' '' ''.DE_FIELDCAT 'MATNR' '物料编码' '' '' '' '' '' '' ''.DE_FIELDCAT 'MENGE' '订单数量' '' '' '' '' '' '' ''.DE_FIELDCAT 'MEINS' '订单单位' '' '' '' '' '' '' ''.DE_FIELDCAT 'EINDT' '交货日期' '' '' '' '' '' '' ''.DE_FIELDCAT 'WERKS' '工厂' '' '' '' '' '' '' ''.DE_FIELDCAT 'LGORT' '库存地点' '' '' '' '' '' '' ''.DE_FIELDCAT 'LMESS' '错误信息' '' '' '' '' '' '' ''.GW_LAYOUT-CWIDTH_OPT = 'X'. "自动优化宽度
GW_LAYOUT-BOX_FNAME = 'BOX'."ALV显示内表的一个字段,用于标记被选中* GW_LAYOUT-ZEBRA = 'X'. "斑马条
* GW_LAYOUT-CWIDTH_OPT = 'X'. "最佳列宽
* WA_LAYOUT-SEL_MODE = ''. "选择模式,'A"在最左端有选择按钮
* WA_LAYOUT-EDIT = ''. "是否允许输入
* GW_LAYOUT-BOX_FNAME = 'BOX'. "ALV显示内表的一个字段,用于标记被选中
* WA_LAYOUT-STYLEFNAME = 'FIELD_STYLE'. "指定ALV单元格的样式,控制是否可编辑
* gw_LAYOUT-CTAB_FNAME = 'CELL_COLOR'. "单元格颜色设置IF GT_ALV IS NOT INITIAL.CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'EXPORTINGI_BUFFER_ACTIVE = 'X'I_CALLBACK_PROGRAM = SY-REPIDI_CALLBACK_PF_STATUS_SET = 'FRM_SET_STATUS'I_CALLBACK_USER_COMMAND = 'FRM_USER_COMMAND'IS_LAYOUT_LVC = GW_LAYOUTI_GRID_SETTINGS = GW_GRID_SETTINGSIT_FIELDCAT_LVC = GT_FIELDCAT[]IT_SORT_LVC = GT_SORT[]I_SAVE = 'A'TABLEST_OUTTAB = GT_ALV.ELSE.MESSAGE TEXT-W01 TYPE 'S' DISPLAY LIKE 'E'.LEAVE LIST-PROCESSING.ENDIF.ENDFORM.FORM FRM_SET_STATUS USING IT_EXTAB TYPE SLIS_T_EXTAB.DATA:WA_EXTAB_LINE LIKE LINE OF IT_EXTAB.SET PF-STATUS 'SAPLSLVC_FULLSCREEN' EXCLUDING IT_EXTAB .
ENDFORM. " FRM_SET_STATUS
七.用户点击事件
FORM FRM_USER_COMMAND USING UCOMM LIKE SY-UCOMM SELFIELD TYPE SLIS_SELFIELD.DATA: L_REF_ALV TYPE REF TO CL_GUI_ALV_GRID.CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'IMPORTINGE_GRID = L_REF_ALV.IF L_REF_ALV IS NOT INITIAL.CALL METHOD L_REF_ALV->CHECK_CHANGED_DATA.ENDIF.CASE UCOMM.WHEN 'ZCHEAK'.CLEAR GT_ALV.PERFORM FRM_CHECK_DATA.PERFORM FRM_RETURN.SELFIELD-REFRESH = 'X'. "刷新界面WHEN 'ZUPLOUD'.LOOP AT GT_ALV INTO GW_ALV WHERE BOX = 'X'.IF GW_ALV-ICON = ICON_LED_GREEN.MODIFY GT_ALV FROM GW_ALV TRANSPORTING NUM.ELSEIF GW_ALV-ICON = ICON_LED_YELLOW OR GW_ALV-ICON = ICON_LED_RED.MESSAGE E001(00) WITH '选择错误,只能批导检查通过的数据!'.ENDIF.ENDLOOP.PERFORM FRM_BAPI_DATA.SELFIELD-REFRESH = 'X'. "刷新界面ENDCASE.ENDFORM.
八.BAPI的调用
*&---------------------------------------------------------------------*
*& 包含 ZSF_BAPI_02_BAPI01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form FRM_BAPI_DATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM FRM_BAPI_DATA .DATA: GS_POHEADER LIKE BAPIMEPOHEADER,GS_POHEADERX LIKE BAPIMEPOHEADERX,GT_RETURN TYPE TABLE OF BAPIRET2,GS_RETURN LIKE BAPIRET2,GT_POITEM TYPE TABLE OF BAPIMEPOITEM,GS_POITEM TYPE BAPIMEPOITEM,GT_POITEMX TYPE TABLE OF BAPIMEPOITEMX,GS_POITEMX TYPE BAPIMEPOITEMX,GT_POSCHEDULE TYPE TABLE OF BAPIMEPOSCHEDULE,GS_POSCHEDULE TYPE BAPIMEPOSCHEDULE,GT_POSCHEDULEX TYPE TABLE OF BAPIMEPOSCHEDULX,GS_POSCHEDULEX TYPE BAPIMEPOSCHEDULX."接返回值
DATA: GS_EXPHEADER LIKE BAPIMEPOHEADER.
IF GT_ALV IS NOT INITIAL.LOOP AT GT_ALV INTO GW_ALV.GS_POHEADER-DOC_TYPE = GW_ALV-BSART.GS_POHEADERX-DOC_TYPE = 'X'.GS_POHEADER-SUPPL_VEND = GW_ALV-LLIEF.GS_POHEADERX-SUPPL_VEND = 'X'.GS_POHEADER-PURCH_ORG = GW_ALV-EKORG.GS_POHEADERX-PURCH_ORG = 'X'.GS_POHEADER-PUR_GROUP = GW_ALV-EKGRP.GS_POHEADERX-PUR_GROUP = 'X'.GS_POHEADER-COMP_CODE = GW_ALV-BUKRS.GS_POHEADERX-COMP_CODE = 'X'."以下为内表GS_POITEM-PO_ITEM = GW_ALV-EBELP.GS_POITEMX-PO_ITEM = 'X'.GS_POITEM-ACCTASSCAT = GW_ALV-KNTTP.GS_POITEMX-ACCTASSCAT = 'X'.GS_POITEM-ITEM_CAT = GW_ALV-BSTYP.GS_POITEMX-ITEM_CAT = 'X'.GS_POITEM-MATERIAL = GW_ALV-MATNR.GS_POITEMX-MATERIAL = 'X'.GS_POITEM-QUANTITY = GW_ALV-MENGE.GS_POITEMX-QUANTITY = 'X'.GS_POITEM-PO_UNIT = GW_ALV-MEINS.GS_POITEMX-PO_UNIT = 'X'.GS_POSCHEDULE-DELIVERY_DATE = GW_ALV-EINDT.GS_POSCHEDULEX-DELIVERY_DATE = 'X'.GS_POITEM-PLANT = GW_ALV-WERKS.GS_POITEMX-PLANT = 'X'.GS_POITEM-STGE_LOC = GW_ALV-LGORT.GS_POITEMX-STGE_LOC = 'X'.APPEND GS_POITEM TO GT_POITEM.APPEND GS_POITEMX TO GT_POITEMX.APPEND GS_POSCHEDULE TO GT_POSCHEDULE.APPEND GS_POSCHEDULEX TO GT_POSCHEDULEX.CALL FUNCTION 'BAPI_PO_CREATE1'EXPORTINGPOHEADER = GS_POHEADERPOHEADERX = GS_POHEADERXIMPORTING
* EXPPURCHASEORDER =EXPHEADER = GS_EXPHEADER
* EXPPOEXPIMPHEADER =TABLESRETURN = GT_RETURNPOITEM = GT_POITEMPOITEMX = GT_POITEMXPOSCHEDULE = GT_POSCHEDULEPOSCHEDULEX = GT_POSCHEDULEX.GW_ALV-EBELN = GS_EXPHEADER-PO_NUMBER.*IF GT_RETURN-TYPE <> 'S'.
* IF GW_ALV-LMESS IS NOT INITIAL.
* CONCATENATE GS_ALV-LMESS '||' INTO GW_ALV-LMESS.
* GW_ALV-ICON = ICON_LED_YELLOW.
*ENDIF.
* CONCATENATE GW_ALV-LMESS GT_RETURN-MESSAGE INTO GW_ALV-LMESS.
* ENDIF.ENDLOOP.
ENDIF.
ENDFORM.
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
