为什么我们对bapi_po_create1使用标志

2020-09-08 20:00发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

在此示例代码中,为什么它们使用标志。我无法理解它们。

&----------------------------------------------  -----------------------
 *&报告ZBAPI_CREATE_PO *
 *&*&----------------------------------------------  -----------------------报告ZBAPI_CREATE_PO。&-----------------------  ----------------------------------------------
 *数据声明常量:C_X VALUE" X"。
 *用于保存PO标头数据的结构DATA:HEADERLIKE BAPIMEPOHEADER,
 HEADERX就像BAPIMEPOHEADERX一样。
 *用于保存PO ITEM DATADATA的内部表:ITEM LIKE BAPIMEPOITEM OCCURS0WITHHEADERLINE,
 像ITEMX这样的BAPIMEPOITEMX OCCURS0WITHHEADERLINE,
 **用于保存来自BAPI调用的消息的内部表RETURNLIKE BAPIRET2 OCCURS0WITHHEADERLINE.data:w_header(40)value'PO Header'.data:ws_langu likesy-langu.data:V_EXPPURCHASEORDER如BAPIMEPOHEADER-PO_NUMBER。
 * text-001 ='PO Header'-定义为文本元素e-screenbeginofblock b1 withframetitletext-001.parameters:company likeheader-comp_code default'1000',
 像HEADER-DOC_TYPE这样的默认文档'NB',
 像HEADER-CREAT_DATE defaultsy-datum这样的日期,
 像HEADER-VENDOR这样的默认" RAJ"的供应商,
 pur_org,例如HEADER-PURCH_ORG的默认值'0001',
 pur_grp类似于HEADER-PUR_GROUP默认值'001'.selection-screenendofblock b1.selection-screenbeginofblock b2具有frametitletext-002.parameters:item_num类似于ITEM-PO_ITEM default'00020',
 像ITEM-MATERIAL默认的'M-127'这样的材料,
 像ITEM-PLANT默认为'0001'的工厂,
 数量,例如ITEM-QUANTITY default200.selection-screenendofblock b2。
 *&------------------------------------------------  ---------------------
 **选择开始。
 *&------------------------------------------------  ---------------------
 **资料人口
 *&------------------------------------------------  ---------------------
 ws_langu = sy-langu。"语言变量
 * POHEADER-COMP_CODE的流行标题数据=公司.HEADER-DOC_TYPE = doctyp .HEADER-CREAT_DATE =日期.HEADER-VENDOR =供应商.HEADER-LANGU = ws_langu .HEADER-PURCH_ORG = pur_org .HEADER-PUR_GROUP = pur_grp。&-  --------------------------------------------------  -----------------
 *热门标题标记。&--------------------------------------------  -------------------------
 HEADERX-comp_code = c_x。
 HEADERX-doc_type = c_x。
 HEADERX-creat_date = c_x。
 HEADERX供应商= c_x。
 HEADERX-langu = c_x。
 HEADERX-purch_org = c_x。
 HEADERX-pur_group = c_x。
 * HEADERX-doc_date = c_x。&------------------------------------------  ---------------------------
 *热门项目数据。&--------------------------------------------  -------------------------
 ITEM-PO_ITEM = item_num。
 物料=物料。
 ITEM-PLANT =植物。
 项目数量=数量附录项目。&----------------------------------------  -----------------------------
 *热门项目标志表&---------------------------------------------  ------------------------
 ITEMX-PO_ITEM = item_num。
 ITEMX-MATERIAL = C_X。
 ITEMX-PLANT = C_X。
 * ITEMX-STGE_LOC = C_X
 ITEMX-QUANTITY = C_X。
 * ITEMX-TAX_CODE = C_X
 * ITEMX-ITEM_CAT = C_X。
 * ITEMX-ACCTASSCAT = C_X .APPEND ITEMX。&---------------------------------------  ------------------------------
 * BAPI呼叫&---------------------------------------------------------------  ---------------------- CALLFUNCTION'BAPI_PO_CREATE1'EXPORTING
 POHEADER =标题
 POHEADERX = HEADERX

 POADDRVENDOR =
 TESTRUN =正在导入
 EXPPURCHASEORDER = V_EXPPURCHASEORDER

 EXPHEADER =
 EXPPOEXPIMPHEADER = TABLESRETURN =返回
 POITEM = ITEM
 POITEMX = ITEMX。&---------------------------------------------  ------------------------
 *通过调用数据库COMMIT确认文档创建&-----------------------------------------  ---------------------------- CALLFUNCTION'BAPI_TRANSACTION_COMMIT'EXPORTINGWAIT ='X'IMPORTINGRETURN =。选择结束。
 ****&---------------------------------------------  ------------------------ *
 ****输出从BAPI调用返回的消息
 ****&---------------------------------------------  ------------------------ *
 *在RETURN.WRITE/v_EXPPURCHASEORDER处循环播放。
 * ENDLOOP。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

在此示例代码中,为什么它们使用标志。我无法理解它们。

&----------------------------------------------  -----------------------
 *&报告ZBAPI_CREATE_PO *
 *&*&----------------------------------------------  -----------------------报告ZBAPI_CREATE_PO。&-----------------------  ----------------------------------------------
 *数据声明常量:C_X VALUE" X"。
 *用于保存PO标头数据的结构DATA:HEADERLIKE BAPIMEPOHEADER,
 HEADERX就像BAPIMEPOHEADERX一样。
 *用于保存PO ITEM DATADATA的内部表:ITEM LIKE BAPIMEPOITEM OCCURS0WITHHEADERLINE,
 像ITEMX这样的BAPIMEPOITEMX OCCURS0WITHHEADERLINE,
 **用于保存来自BAPI调用的消息的内部表RETURNLIKE BAPIRET2 OCCURS0WITHHEADERLINE.data:w_header(40)value'PO Header'.data:ws_langu likesy-langu.data:V_EXPPURCHASEORDER如BAPIMEPOHEADER-PO_NUMBER。
 * text-001 ='PO Header'-定义为文本元素e-screenbeginofblock b1 withframetitletext-001.parameters:company likeheader-comp_code default'1000',
 像HEADER-DOC_TYPE这样的默认文档'NB',
 像HEADER-CREAT_DATE defaultsy-datum这样的日期,
 像HEADER-VENDOR这样的默认" RAJ"的供应商,
 pur_org,例如HEADER-PURCH_ORG的默认值'0001',
 pur_grp类似于HEADER-PUR_GROUP默认值'001'.selection-screenendofblock b1.selection-screenbeginofblock b2具有frametitletext-002.parameters:item_num类似于ITEM-PO_ITEM default'00020',
 像ITEM-MATERIAL默认的'M-127'这样的材料,
 像ITEM-PLANT默认为'0001'的工厂,
 数量,例如ITEM-QUANTITY default200.selection-screenendofblock b2。
 *&------------------------------------------------  ---------------------
 **选择开始。
 *&------------------------------------------------  ---------------------
 **资料人口
 *&------------------------------------------------  ---------------------
 ws_langu = sy-langu。"语言变量
 * POHEADER-COMP_CODE的流行标题数据=公司.HEADER-DOC_TYPE = doctyp .HEADER-CREAT_DATE =日期.HEADER-VENDOR =供应商.HEADER-LANGU = ws_langu .HEADER-PURCH_ORG = pur_org .HEADER-PUR_GROUP = pur_grp。&-  --------------------------------------------------  -----------------
 *热门标题标记。&--------------------------------------------  -------------------------
 HEADERX-comp_code = c_x。
 HEADERX-doc_type = c_x。
 HEADERX-creat_date = c_x。
 HEADERX供应商= c_x。
 HEADERX-langu = c_x。
 HEADERX-purch_org = c_x。
 HEADERX-pur_group = c_x。
 * HEADERX-doc_date = c_x。&------------------------------------------  ---------------------------
 *热门项目数据。&--------------------------------------------  -------------------------
 ITEM-PO_ITEM = item_num。
 物料=物料。
 ITEM-PLANT =植物。
 项目数量=数量附录项目。&----------------------------------------  -----------------------------
 *热门项目标志表&---------------------------------------------  ------------------------
 ITEMX-PO_ITEM = item_num。
 ITEMX-MATERIAL = C_X。
 ITEMX-PLANT = C_X。
 * ITEMX-STGE_LOC = C_X
 ITEMX-QUANTITY = C_X。
 * ITEMX-TAX_CODE = C_X
 * ITEMX-ITEM_CAT = C_X。
 * ITEMX-ACCTASSCAT = C_X .APPEND ITEMX。&---------------------------------------  ------------------------------
 * BAPI呼叫&---------------------------------------------------------------  ---------------------- CALLFUNCTION'BAPI_PO_CREATE1'EXPORTING
 POHEADER =标题
 POHEADERX = HEADERX

 POADDRVENDOR =
 TESTRUN =正在导入
 EXPPURCHASEORDER = V_EXPPURCHASEORDER

 EXPHEADER =
 EXPPOEXPIMPHEADER = TABLESRETURN =返回
 POITEM = ITEM
 POITEMX = ITEMX。&---------------------------------------------  ------------------------
 *通过调用数据库COMMIT确认文档创建&-----------------------------------------  ---------------------------- CALLFUNCTION'BAPI_TRANSACTION_COMMIT'EXPORTINGWAIT ='X'IMPORTINGRETURN =。选择结束。
 ****&---------------------------------------------  ------------------------ *
 ****输出从BAPI调用返回的消息
 ****&---------------------------------------------  ------------------------ *
 *在RETURN.WRITE/v_EXPPURCHASEORDER处循环播放。
 * ENDLOOP。
付费偷看设置
发送
5条回答
小c菟菟
1楼 · 2020-09-08 20:42.采纳回答

对于"更改" BAPI,X标志用于区分这两种情况:

  • 清除对象字段(设置X标志)
  • 不更改对象字段(不设置X标志)

对于"创建" BAPI,X 标志用于区分这两种情况(这是猜测):

    对象字段的
  • 值""(设置X标志)
  • 保留SAP建议的默认值(不设置X标志)

(注意: 可能需要某些字段,例如关键字段,而不具有SAP建议的默认值,在这种情况下,可能不需要显式设置X标志; expl:BAPI_SALESORDER_CREATEFROMDAT2,ORDER_HEADER_INX,即使未设置DOC_TYPE,SALES_ORG ... ,则考虑ORDER_HEADER_IN中的相应字段)

SAP浪
2楼-- · 2020-09-08 20:45

... c_x ='X'。

我所见的最好的常量定义不完全是。 我想可能会更糟,例如

... c_x ='Y'...

Nan4612
3楼-- · 2020-09-08 20:22

嗨,

如果您需要更改 值,您应该传递X值。 例如:

如果需要更新公司代码

POHEADER-COMP_CODE ='1000'。

POHEADERX-COMP_CODE ='X'。

如果您未传递'X'之类的参数,则PO将不会更新相关字段。

您的C_X应该像

 CONSTANTS:C_X TYPE C VALUE'X'。
昵称总是被占用
4楼-- · 2020-09-08 20:27

您试图读取数据元素BAPIUPDATE documentaiton吗?

葫芦娃快救爷爷
5楼-- · 2020-09-08 20:31

嗨,

此bapi在SAP中有详细记录。 只需转到se37,显示并单击"功能模块文档"按钮即可。

问候,Rob Dielemans

一周热门 更多>