创建PO/SO
IF P_ZY EQ 'X'."直营订单 调拨单
PERFORM FRM_INIT_PO_HEADER.
PERFORM FRM_INIT_PO_ITEM.
PERFORM FRM_INIT_PO_SCHLINE.
PERFORM FRM_INIT_PO_TEXTS.
PERFORM FRM_CREATE_PO USING P_COMMIT.
ELSEIF P_JM EQ 'X'."加盟订单 销售订单
PERFORM FRM_INIT_SALESORDER_HEADER .
PERFORM FRM_INIT_SALESORDER_ITEMS .
PERFORM FRM_INIT_SALESORDER_PARTNER .
PERFORM FRM_INIT_SALESORDER_TEXTS .
PERFORM FRM_CREATE_SALESORDER USING P_COMMIT.
ENDIF.
FORM FRM_INIT_PO_HEADER. DATA: LV_VENDOR TYPE LIFNR,
LV_DATE TYPE DATUM. CLEAR: GS_POHEADER,
GS_POHEADERX. LV_DATE = IT_HEADER-ZDATE. IF LV_DATE IS INITIAL.
LV_DATE = P_DATE.
ENDIF. PERFORM FRM_CONVERT_VENDOR USING '' CHANGING LV_VENDOR. GS_POHEADER-VENDOR = LV_VENDOR.
GS_POHEADER-SUPPL_PLNT = ''.
GS_POHEADER-DOC_TYPE = GS_ORG-AUART.
GS_POHEADER-DOC_DATE = LV_DATE. "Document Date
GS_POHEADER-CREAT_DATE = SY-DATUM.
GS_POHEADER-CREATED_BY = SY-UNAME.
GS_POHEADER-PURCH_ORG = GS_ORG-EKORG.
GS_POHEADER-PUR_GROUP = GS_ORG-EKGRP.
GS_POHEADER-COMP_CODE = GS_ORG-BUKRS.
GS_POHEADER-SALES_PERS = IT_HEADER-ZPOSN."Salesperson
GS_POHEADER-TELEPHONE = IT_HEADER-ZLXDH."Vendor's Telephone GS_POHEADERX-DOC_TYPE = 'X'.
GS_POHEADERX-DOC_DATE = 'X'.
GS_POHEADERX-CREAT_DATE = 'X'.
GS_POHEADERX-CREATED_BY = 'X'.
GS_POHEADERX-VENDOR = 'X'.
GS_POHEADERX-PURCH_ORG = 'X'.
GS_POHEADERX-PUR_GROUP = 'X'.
GS_POHEADERX-COMP_CODE = 'X'.
GS_POHEADERX-SALES_PERS = 'X'.
GS_POHEADERX-TELEPHONE = 'X'.
GS_POHEADERX-SUPPL_PLNT = 'X'.
ENDFORM. " FRM_INIT_PO_HEADER
FORM FRM_INIT_PO_ITEM. DATA : LV_LGORT TYPE VBAP-LGORT,
LV_WERKS TYPE VBAP-WERKS,
LV_MATNR TYPE VBAP-MATNR,
LV_BWTTY TYPE MBEW-BWTTY,
LV_MEINS TYPE MARA-MEINS,
LV_QTY TYPE EKPO-MENGE,
LV_CHARG TYPE MCHA-CHARG. CLEAR: GS_POITEM,
GT_POITEM,
GS_POITEMX,
GT_POITEMX. SHIFT IT_HEADER-ZKUBM LEFT DELETING LEADING ''. LV_WERKS = IT_HEADER-ZKUBM. LOOP AT IT_ITEM WHERE ZPOSN EQ IT_HEADER-ZPOSN.
* 转换物料号码
PERFORM FRM_CONVERT_ARTICLE USING IT_ITEM-ZSPKH CHANGING LV_MATNR.
* 是否启用分割评估
SELECT SINGLE BWTTY INTO LV_BWTTY FROM MBEW WHERE MATNR = LV_MATNR AND BWKEY = LV_WERKS.
* 基本单位
SELECT SINGLE MEINS INTO LV_MEINS FROM MARA WHERE MATNR = LV_MATNR. IF LV_MEINS = 'G'."基本单位为G, 下单数量取总金重
LV_QTY = IT_ITEM-ZZJZ.
ELSE."否则取总件数
LV_QTY = IT_ITEM-ZSPJH.
ENDIF. IF LV_QTY IS INITIAL.
LV_QTY = .
ENDIF. LV_CHARG = IT_ITEM-CHARG. * 物料启用了分割凭证但是没有评估类型(批次),则使用物料编码作为评估类型
IF LV_BWTTY = 'X' AND LV_CHARG IS INITIAL.
PERFORM FRM_CONVERT_VALUE_TYPE USING LV_MATNR CHANGING LV_CHARG.
ENDIF.
* 检查物料 门店 批次是否存在
PERFORM FRM_CHECK_BATCH USING LV_WERKS LV_MATNR LV_CHARG. CLEAR GS_POITEM.
GS_POITEM-PO_ITEM = IT_ITEM-ZITEM.
GS_POITEM-MATERIAL = LV_MATNR.
GS_POITEM-PLANT = LV_WERKS.
GS_POITEM-BATCH = IT_ITEM-CHARG."批次
GS_POITEM-SUPPL_STLOC = ''.
GS_POITEM-QUANTITY = LV_QTY. IF LV_BWTTY = 'X'."
GS_POITEM-VAL_TYPE = LV_CHARG."评估类型
ENDIF. IF GS_ORG-AUART = 'ZSTJ'."Consigment
GS_POITEM-ITEM_CAT = 'K'.
ELSE.
GS_POITEM-ITEM_CAT = 'U'.
ENDIF. APPEND GS_POITEM TO GT_POITEM. CLEAR GS_POITEMX.
GS_POITEMX-PO_ITEM = IT_ITEM-ZITEM.
GS_POITEMX-MATERIAL = 'X'.
GS_POITEMX-BATCH = 'X'.
GS_POITEMX-VAL_TYPE = 'X'.
GS_POITEMX-STGE_LOC = 'X'.
GS_POITEMX-PLANT = 'X'.
GS_POITEMX-QUANTITY = 'X'.
GS_POITEMX-ITEM_CAT = 'X'.
APPEND GS_POITEMX TO GT_POITEMX.
ENDLOOP. ENDFORM. " FRM_INIT_PO_ITEM
FORM FRM_INIT_PO_SCHLINE .
REFRESH: GT_POSCHEDULE,
GT_POSCHEDULEX. * CLEAR gs_poschedule.
* gs_poschedule-po_item = p_item_no.
* gs_poschedule-sched_line = 1.
* gs_poschedule-delivery_date = lv_del_date.
* APPEND gs_poschedule TO gt_poschedule.
*
* CLEAR gs_poschedulex.
* gs_poschedulex-po_item = p_item_no.
* gs_poschedulex-sched_line = 1.
* gs_poschedulex-delivery_date = 'X'.
* APPEND gs_poschedulex TO gt_poschedulex.
ENDFORM. " FRM_INIT_PO_SCHLINE
FORM FRM_INIT_PO_TEXTS.
REFRESH: GT_POTEXTHEADER,
GT_POTEXTITEM.
CLEAR: GS_POTEXTITEM,
GS_POTEXTITEM. * Header Text
* 抬头文本
CLEAR GS_POTEXTHEADER.
GS_POTEXTHEADER-TEXT_ID = 'F01'.
GS_POTEXTHEADER-TEXT_LINE = IT_HEADER-ZHTEXT."订单抬头文本
APPEND GS_POTEXTHEADER TO GT_POTEXTHEADER. * Item Text
* 行项目文本
LOOP AT IT_ITEM WHERE ZPOSN EQ IT_HEADER-ZPOSN.
CLEAR GS_POTEXTITEM.
GS_POTEXTITEM-PO_ITEM = IT_ITEM-ZITEM.
GS_POTEXTITEM-TEXT_ID = 'F01'.
GS_POTEXTITEM-TEXT_LINE = IT_ITEM-ZITEXT."订单行项目文本
APPEND GS_POTEXTITEM TO GT_POTEXTITEM.
ENDLOOP.
ENDFORM. " FRM_INIT_PO_TEXTS
FORM FRM_CREATE_PO USING P_COMMIT.
DATA : LV_TESTRUN TYPE BAPIFLAG-BAPIFLAG,
LV_ERROR. IF P_COMMIT IS INITIAL.
LV_TESTRUN = 'X'.
ENDIF. CALL FUNCTION 'BAPI_PO_CREATE1'
EXPORTING
POHEADER = GS_POHEADER
POHEADERX = GS_POHEADERX
TESTRUN = LV_TESTRUN
IMPORTING
EXPPURCHASEORDER = GV_EXPPURCHASEORDER
TABLES
RETURN = GT_RETURN
POITEM = GT_POITEM
POITEMX = GT_POITEMX
POSCHEDULE = GT_POSCHEDULE
POSCHEDULEX = GT_POSCHEDULEX
POTEXTHEADER = GT_POTEXTHEADER
POTEXTITEM = GT_POTEXTITEM. LOOP AT GT_RETURN INTO GS_RETURN.
CLEAR IT_MSG.
MOVE-CORRESPONDING GS_RETURN TO IT_MSG.
IT_MSG-ZPOSN = IT_HEADER-ZPOSN.
IT_MSG-ORDER = GV_EXPPURCHASEORDER. CASE GS_RETURN-TYPE.
WHEN 'E' OR 'X' OR 'A'.
IF GS_RETURN-ID = 'MEPO' AND GS_RETURN-NUMBER = ''.
CONTINUE.
ELSE.
IT_MSG-LIGHT = ''."Red Light
ENDIF. LV_ERROR = 'X'.
WHEN 'S'.
IT_MSG-LIGHT = ''."Green Light
WHEN OTHERS.
CONTINUE.
ENDCASE. COLLECT IT_MSG.
ENDLOOP. IF LV_ERROR EQ 'X'.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ELSE. CHECK P_COMMIT EQ 'X'. PERFORM FRM_RECORD_LINES USING IT_HEADER-ZPOSN GV_EXPPURCHASEORDER.
* CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
* EXPORTING
* WAIT = 'X'.
ENDIF.
ENDFORM. " FRM_CREATE_PO
FORM FRM_INIT_SALESORDER_HEADER. DATA : LV_DATE TYPE DATUM. CLEAR GS_SALESORDER_HEADER. LV_DATE = IT_HEADER-ZDATE. IF LV_DATE IS INITIAL.
LV_DATE = P_DATE.
ENDIF. * Mandatory entries:
GS_SALESORDER_HEADER-DOC_TYPE = GS_ORG-AUART. "Sales document type
GS_SALESORDER_HEADER-SALES_ORG = GS_ORG-VKORG. "Sales organization
GS_SALESORDER_HEADER-DISTR_CHAN = GS_ORG-VTWEG. "Distribution channel
GS_SALESORDER_HEADER-DIVISION = GS_ORG-SPART. " Division * Optional entries:
GS_SALESORDER_HEADER-DOC_DATE = LV_DATE. "Document date
GS_SALESORDER_HEADER-PURCH_NO_C = IT_HEADER-ZPOSN. "Customer PO No. (POS订单号码)
GS_SALESORDER_HEADER-ORD_REASON = IT_HEADER-ZPLX. "Order reason.
GS_SALESORDER_HEADER-TELEPHONE = IT_HEADER-ZLXDH. "Telephone Number. (联系电话)
GS_SALESORDER_HEADER-NAME = IT_HEADER-ZLSR. "Name of order. (联系人) * Change index
GS_SALESORDER_HEADERX-UPDATEFLAG = 'I'. "Sales document type
GS_SALESORDER_HEADERX-DOC_TYPE = 'X'. "Sales document type
GS_SALESORDER_HEADERX-SALES_ORG = 'X'. "Sales organization
GS_SALESORDER_HEADERX-DISTR_CHAN = 'X'. "Distribution channel
GS_SALESORDER_HEADERX-DIVISION = 'X'. " Division GS_SALESORDER_HEADERX-DOC_DATE = 'X'. "Document date (订单日期)
GS_SALESORDER_HEADERX-PURCH_NO_C = 'X'. "Customer PO No. (POS订单号码)
GS_SALESORDER_HEADERX-ORD_REASON = 'X'. "Order reason. (订单类型)
GS_SALESORDER_HEADERX-TELEPHONE = 'X'. "Telephone Number. (联系电话)
GS_SALESORDER_HEADERX-NAME = 'X'. "Name of order. (联系人)
* GS_SALESORDER_HEADERX-DOC_DATE = 'X'. "Name of order. (联系人) CLEAR GS_LOGIC_SWITCH.
* GS_LOGIC_SWITCH-COND_HANDL = 'X'.
GS_LOGIC_SWITCH-PRICING = 'G'.
ENDFORM. " FRM_INIT_SALESORDER_HEADER
FORM FRM_INIT_SALESORDER_ITEMS. DATA : LV_MATNR TYPE MARA-MATNR,
LV_BWTTY TYPE MBEW-BWTTY,
LV_MEINS TYPE MARA-MEINS,
LV_CHARG TYPE MCH1-CHARG,
LV_WERKS TYPE MARC-WERKS,
LV_MENGE TYPE EKPO-MENGE. DATA : LV_ZPR5 TYPE P DECIMALS . REFRESH: GT_SALESORDER_ITEMX,
GT_SALESORDER_ITEM,
GT_SALESORDER_CONDITIONS,
GT_SALESORDER_CONDITIONX,
GT_SALESORDER_SCHLINE,
GT_SALESORDER_SCHLINEX,
GT_SALESORDER_TEXT. LV_WERKS = IT_HEADER-WERKS. LOOP AT IT_ITEM WHERE ZPOSN EQ IT_HEADER-ZPOSN. *** 行项目
* Convert Article no. (商品款号)
PERFORM FRM_CONVERT_ARTICLE USING IT_ITEM-ZSPKH CHANGING LV_MATNR.
* 评估类别
SELECT SINGLE BWTTY INTO LV_BWTTY FROM MBEW WHERE MATNR = LV_MATNR AND BWKEY = LV_WERKS.
* 基本单位
SELECT SINGLE MEINS INTO LV_MEINS FROM MARA WHERE MATNR = LV_MATNR. IF LV_MEINS = 'G'.
LV_MENGE = IT_ITEM-ZZJZ.
ELSE.
LV_MENGE = IT_ITEM-ZSPJH."Target quantity in sales units
ENDIF. * Batch
LV_CHARG = IT_ITEM-CHARG.
* 检查批次、物料是否存在
PERFORM FRM_CHECK_BATCH USING LV_WERKS LV_MATNR LV_CHARG. CLEAR GS_SALESORDER_ITEM.
GS_SALESORDER_ITEM-ITM_NUMBER = IT_ITEM-ZITEM."
GS_SALESORDER_ITEM-MATERIAL = LV_MATNR."
GS_SALESORDER_ITEM-BATCH = IT_ITEM-CHARG."
GS_SALESORDER_ITEM-PLANT = LV_WERKS. "
GS_SALESORDER_ITEM-TARGET_QTY = LV_MENGE."Target quantity in sales units IF LV_BWTTY EQ 'X'.
GS_SALESORDER_ITEM-VAL_TYPE = LV_CHARG." ”Valution Type
ENDIF. APPEND GS_SALESORDER_ITEM TO GT_SALESORDER_ITEM. CLEAR GS_SALESORDER_ITEMX.
GS_SALESORDER_ITEMX-UPDATEFLAG = 'I'.
GS_SALESORDER_ITEMX-ITM_NUMBER = IT_ITEM-ZITEM.
GS_SALESORDER_ITEMX-MATERIAL = 'X'.
GS_SALESORDER_ITEMX-BATCH = 'X'.
GS_SALESORDER_ITEMX-VAL_TYPE = 'X'.
GS_SALESORDER_ITEMX-PLANT = 'X'.
GS_SALESORDER_ITEMX-TARGET_QTY = 'X'.
APPEND GS_SALESORDER_ITEMX TO GT_SALESORDER_ITEMX. *** 计划行
CLEAR GS_SALESORDER_SCHLINE.
GS_SALESORDER_SCHLINE-ITM_NUMBER = IT_ITEM-ZITEM.
GS_SALESORDER_SCHLINE-SCHED_LINE = ''.
GS_SALESORDER_SCHLINE-REQ_QTY = LV_MENGE.
APPEND GS_SALESORDER_SCHLINE TO GT_SALESORDER_SCHLINE. CLEAR GS_SALESORDER_SCHLINEX.
GS_SALESORDER_SCHLINEX-ITM_NUMBER = IT_ITEM-ZITEM.
GS_SALESORDER_SCHLINEX-SCHED_LINE = ''.
GS_SALESORDER_SCHLINEX-UPDATEFLAG = 'I'.
GS_SALESORDER_SCHLINEX-REQ_QTY = 'X'.
APPEND GS_SALESORDER_SCHLINEX TO GT_SALESORDER_SCHLINEX. *** 条件
* 估算价(金单价)
CLEAR GS_SALESORDER_CONDITIONS.
GS_SALESORDER_CONDITIONS-ITM_NUMBER = IT_ITEM-ZITEM.
GS_SALESORDER_CONDITIONS-COND_TYPE = 'ZPR4'.
GS_SALESORDER_CONDITIONS-COND_VALUE = IT_ITEM-ZJDJ.
GS_SALESORDER_CONDITIONS-CURRENCY = 'CNY'.
APPEND GS_SALESORDER_CONDITIONS TO GT_SALESORDER_CONDITIONS. CLEAR GS_SALESORDER_CONDITIONX.
GS_SALESORDER_CONDITIONX-ITM_NUMBER = IT_ITEM-ZITEM.
GS_SALESORDER_CONDITIONX-COND_TYPE = 'ZPR4'.
GS_SALESORDER_CONDITIONX-UPDATEFLAG = 'I'.
GS_SALESORDER_CONDITIONX-COND_VALUE = 'X'.
GS_SALESORDER_CONDITIONX-CURRENCY = 'X'.
APPEND GS_SALESORDER_CONDITIONX TO GT_SALESORDER_CONDITIONX. *** 行项目文本
CLEAR GS_SALESORDER_TEXT.
GS_SALESORDER_TEXT-ITM_NUMBER = IT_ITEM-ZITEM."
GS_SALESORDER_TEXT-TEXT_ID = ''."Object VBBP
GS_SALESORDER_TEXT-TEXT_LINE = IT_ITEM-ZITEXT."(订单抬头文本)
GS_SALESORDER_TEXT-LANGU = SY-LANGU.
APPEND GS_SALESORDER_TEXT TO GT_SALESORDER_TEXT.
ENDLOOP. * 合计金额
CLEAR GS_SALESORDER_CONDITIONS.
GS_SALESORDER_CONDITIONS-COND_TYPE = 'ZPR0'.
GS_SALESORDER_CONDITIONS-COND_ST_NO = .
GS_SALESORDER_CONDITIONS-COND_COUNT = .
GS_SALESORDER_CONDITIONS-COND_VALUE = IT_HEADER-ZHJJE.
GS_SALESORDER_CONDITIONS-CURRENCY = 'CNY'.
APPEND GS_SALESORDER_CONDITIONS TO GT_SALESORDER_CONDITIONS. CLEAR GS_SALESORDER_CONDITIONX.
GS_SALESORDER_CONDITIONX-COND_TYPE = 'ZPR0'.
GS_SALESORDER_CONDITIONX-COND_ST_NO = .
GS_SALESORDER_CONDITIONX-COND_COUNT = .
GS_SALESORDER_CONDITIONX-UPDATEFLAG = 'I'.
GS_SALESORDER_CONDITIONX-COND_VALUE = 'X'.
GS_SALESORDER_CONDITIONX-CURRENCY = 'X'.
APPEND GS_SALESORDER_CONDITIONX TO GT_SALESORDER_CONDITIONX. * 订单订金
IF IT_HEADER-ZDDLX IS NOT INITIAL.
LV_ZPR5 = IT_HEADER-ZDDLX.
CLEAR GS_SALESORDER_CONDITIONS.
GS_SALESORDER_CONDITIONS-COND_TYPE = 'ZPR5'.
GS_SALESORDER_CONDITIONS-COND_ST_NO = .
GS_SALESORDER_CONDITIONS-COND_COUNT = .
GS_SALESORDER_CONDITIONS-COND_VALUE = LV_ZPR5.
GS_SALESORDER_CONDITIONS-CURRENCY = 'CNY'.
APPEND GS_SALESORDER_CONDITIONS TO GT_SALESORDER_CONDITIONS. CLEAR GS_SALESORDER_CONDITIONX.
GS_SALESORDER_CONDITIONX-COND_TYPE = 'ZPR5'.
GS_SALESORDER_CONDITIONX-COND_ST_NO = .
GS_SALESORDER_CONDITIONX-COND_COUNT = .
GS_SALESORDER_CONDITIONX-UPDATEFLAG = 'I'.
GS_SALESORDER_CONDITIONX-COND_VALUE = 'X'.
GS_SALESORDER_CONDITIONX-CURRENCY = 'X'.
APPEND GS_SALESORDER_CONDITIONX TO GT_SALESORDER_CONDITIONX.
ENDIF.
ENDFORM. " FRM_INIT_SALESORDER_ITEMS
FORM FRM_INIT_SALESORDER_PARTNER. DATA : LV_KUNNR TYPE VBPA-KUNNR."Customer CLEAR: GT_SALESORDER_PARTNER. * Convert customer no. to internal no.(客户编码)
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = IT_HEADER-ZKUBM
IMPORTING
OUTPUT = LV_KUNNR. * WE Ship to , AG Sold to
CLEAR GS_SALESORDER_PARTNER.
* gs_salesorder_partner-itm_number = '10'."
GS_SALESORDER_PARTNER-PARTN_ROLE = 'WE'."SP
GS_SALESORDER_PARTNER-PARTN_NUMB = LV_KUNNR. "(客户编码)
* gs_salesorder_partner-name = u_header-zkhmc. "Name (客户名称)
APPEND GS_SALESORDER_PARTNER TO GT_SALESORDER_PARTNER. * CLEAR gs_salesorder_partner.
** gs_salesorder_partner-itm_number = '10'."
* gs_salesorder_partner-partn_role = 'AG'."SH
* gs_salesorder_partner-partn_numb = '0000040001'."SHip to
* APPEND gs_salesorder_partner TO gt_salesorder_partner.
ENDFORM. " FRM_INIT_SALESORDER_PARTNER
FORM FRM_INIT_SALESORDER_TEXTS. * CLEAR : GS_SALESORDER_TEXT,
* GT_SALESORDER_TEXT.
* Header Texts
CLEAR GS_SALESORDER_TEXT.
GS_SALESORDER_TEXT-TEXT_ID = ''."Object VBBK
GS_SALESORDER_TEXT-TEXT_LINE = IT_HEADER-ZHTEXT."(订单抬头文本)
GS_SALESORDER_TEXT-LANGU = SY-LANGU."
APPEND GS_SALESORDER_TEXT TO GT_SALESORDER_TEXT. ** Item Texts
* LOOP AT T_ITEMS INTO IT_ITEM.
* CLEAR GS_SALESORDER_TEXT.
* GS_SALESORDER_TEXT-ITM_NUMBER = IT_ITEM-ZITEM."
* GS_SALESORDER_TEXT-TEXT_ID = '0001'."Object VBBP
* GS_SALESORDER_TEXT-TEXT_LINE = IT_ITEM-ZITEXT."(订单抬头文本)
* GS_SALESORDER_TEXT-LANGU = SY-LANGU.
* APPEND GS_SALESORDER_TEXT TO GT_SALESORDER_TEXT.
* ENDLOOP. ENDFORM. " FRM_INIT_SALESORDER_TEXTS
FORM FRM_CREATE_SALESORDER USING P_COMMIT. DATA : LV_SALESORDER TYPE BAPIVBELN-VBELN,
LV_TESTRUN TYPE BAPIFLAG-BAPIFLAG,
LV_ERROR. IF P_COMMIT IS INITIAL.
LV_TESTRUN = 'X'.
ENDIF. CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
EXPORTING
ORDER_HEADER_IN = GS_SALESORDER_HEADER
ORDER_HEADER_INX = GS_SALESORDER_HEADERX
LOGIC_SWITCH = GS_LOGIC_SWITCH
TESTRUN = LV_TESTRUN
IMPORTING
SALESDOCUMENT = LV_SALESORDER
TABLES
RETURN = GT_RETURN
ORDER_ITEMS_IN = GT_SALESORDER_ITEM
ORDER_ITEMS_INX = GT_SALESORDER_ITEMX
ORDER_PARTNERS = GT_SALESORDER_PARTNER
ORDER_SCHEDULES_IN = GT_SALESORDER_SCHLINE
ORDER_SCHEDULES_INX = GT_SALESORDER_SCHLINEX
ORDER_CONDITIONS_IN = GT_SALESORDER_CONDITIONS
ORDER_CONDITIONS_INX = GT_SALESORDER_CONDITIONX
ORDER_TEXT = GT_SALESORDER_TEXT. LOOP AT GT_RETURN INTO GS_RETURN.
CLEAR IT_MSG.
MOVE-CORRESPONDING GS_RETURN TO IT_MSG.
IT_MSG-ZPOSN = IT_HEADER-ZPOSN.
IT_MSG-ORDER = LV_SALESORDER. CASE GS_RETURN-TYPE.
WHEN 'E' OR 'X' OR 'A'.
IT_MSG-LIGHT = ''."Red Light
LV_ERROR = 'X'.
WHEN 'S'.
IF GS_RETURN-ID = 'V1' AND GS_RETURN-NUMBER = ''.
IT_MSG-LIGHT = ''."Green Light
ELSE.
CONTINUE.
ENDIF.
WHEN OTHERS.
CONTINUE.
ENDCASE. COLLECT IT_MSG.
* EXIT.
ENDLOOP. IF LV_ERROR EQ 'X'.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ELSE.
CHECK P_COMMIT EQ 'X'. PERFORM FRM_RECORD_LINES USING IT_HEADER-ZPOSN LV_SALESORDER. * CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
* EXPORTING
* WAIT = 'X'.
ENDIF. ENDFORM. " FRM_CREATE_SALESORDER
创建PO/SO的更多相关文章
- 利用MyEclipse自动创建PO类、hbm文件(映射文件)、DAO
原文地址:http://blog.csdn.net/fangzhibin4712/article/details/7179414 前提条件:表sjzdfl 表sjzdxx (使用数据库MySQL) ...
- SAP MM ME21N 创建PO时报错 - Net price in CNY becomes too large –
SAP MM ME21N 创建PO时报错 - Net price in CNY becomes too large – 笔者所在的项目上,由于客户尚未正式大规模量产,在现阶段,所有的物料基本都是走费用 ...
- 「SAP技术」已启用质检物料创建PO时候'STOCK TYPE'没有默认为X?
「SAP技术」 SAP MM 已启用质检物料创建PO时候'STOCK TYPE'没有默认为X? Part I:SAP 标准行为 1, 物料11002335, QM视图里 01 inspection t ...
- 使用bapi创建PO遇到问题(BAPI_PO_CREATE1
今天用 BAPI_PO_CREATE1创建po. 注意事项: vendor 供应商号:长度必须和系统一致,10位.如 2000025要写成 0002000025传递给参数. POITEM 中的 PO_ ...
- BAPI创建PO,禁止净价信息更新
大家都知道创建PO时,我们如果勾选了"信息更新",则该PO保存后相应的信息记录会把这个PO更新为其最后的凭证,那么这张PO的净价会作为下次创建新PO时净价的默认值. 这样我们设置的 ...
- BAPI_PO_CREATE1 创建PO ch_memory_complete = ‘x',导致hold on 解决方案,
1.尝试注释标准逻辑,看会不会有什么问题, ZME_BAPI_PO_CUST IF_EX_ME_BAPI_PO_CREATE_02~INBOUND 里面有个控制很费解 我给注释了 2.改用 BAPI_ ...
- 创建PO
FORM FRM_CREATE_PO USING P_POSNR CHANGING P_EBELN. DATA: LV_VENDOR TYPE LIFNR, LV_ITEM TYPE EBELP, L ...
- 创建第一个Hiberntae工程
一.前言 很久之前已经对Hibernate有所了解,在项目中进行过简单的应用,基本了解hibernate的简单应用,没有深入的了解,来Shine公司快三个月了,公司的ORM框架就是用Hiberante ...
- BOM/ROUTING/PO/WIP等模块常用查询
常用查询scripts /*bom*/ select p_item.segment1,c_item.segment1,bic.COMPONENT_QUANTITY,bic.COMPONENT_YIEL ...
随机推荐
- 手机如何解散QQ讨论组
手机如何解散QQ讨论组 讨论组可以方便一群人的聊天,一般都是一段时间的问题.过了这一段时间,大家都是不需要再在讨论组里面发言了,那么手机如何解散QQ讨论组呢? 1 我们登录自己的 QQ之后 ...
- Visual Studio 2012 RC 中RC表示什么意思
来自:http://zhidao.baidu.com/question/507233956.html Release Candidate 缩写为 RC ,经常用于计算机软件方面,表示软件的候选发布版. ...
- [转载] 高效MacBook工作环境配置
原文: http://www.xialeizhou.com/?p=71 高效MacBook工作环境配置 发表于 2015 年 8 月 1 日 由 xialeizhou 本文记录整个配置过程,供新入手M ...
- [转载] 深入 superviser
模块简介 新人接触线上的时候一般都会碰到supervise这个工具,导师对这个模块的解释一般就是,这个模块是监控进程,当进程挂掉之后,supervise会将进程启动.这样当进程出 现问题,如因出cor ...
- php提示:Call to undefined function curl_init
我要利用curl函数进行数据采集时发现提示Call to undefined function curl_init错误了,后来从官网了解到因为curl默认不是php开启的函数,我们需要手工打开哦,下面 ...
- jquery input选择弹框
index.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pag ...
- caffe的data_reader.cpp分析一下干了点什么
首先说明:下面的内容不一定对 类body: 变量:LayerParameter param_ :它里面放的是:body传进来的layerparameter的参数: BlockingQueue<s ...
- Delphi 程序结构
注:该内容整理自以下链接. http://www.cnblogs.com/hackpig/archive/2010/02/15/1668513.html 概要介绍:Object Pascal语言的结构 ...
- hdu 4055 && hdu 4489 动态规划
hdu 4055: 一开始我想的递推方向想得很复杂,看了别人的博客后才醍醐灌顶: 参照他的思路和代码: #include<cstdio> #include<cstring> # ...
- Oracle 删除重复的记录,只保留一条
查询及删除重复记录的SQL语句 1.查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断 select * from 表 where Id in (select Id from 表 g ...