必威体育Betway必威体育官网
当前位置:首页 > IT技术

借贷项订单创建BAPI

时间:2019-08-18 06:42:09来源:IT技术作者:seo实验室小编阅读:64次「手机版」
 

bapi

SD_SALESDOCUMENT_CREATE

用于创建销售订单。

创建销售订单的BAPI,比较常用的是BAPI_SALESorder_CREATEFROMDAT2,但是  BUSINESS OBJECT限制为 BUS2032。

使用以下函数可以得到BUSINESS OBJECT:

DATA:LV_OBJTYPE TYPE OJ_NAME .

LS_HEADER-SD_DOC_CAT为销售订单类型,即类型为:VBAK-VBTYP

   CALL FUNCTION 'SD_OBJECT_TYPE_DETERMINE'

   EXPORTING

I_DOCUMENT_TYPE   = LS_HEADER-SD_DOC_CAT

   IMPORTING

E_BUSINESS_OBJECT = LV_OBJTYPE

   EXCEPTIONS

OTHERS            = 1.

如果LV_OBJTYPE = ‘BUS2032’.

则可以使用BAPI_SALESORDER_CREATEFROMDAT2

如果其他的业务对象则使用FM: SD_SALESDOCUMENT_CREATE创建销售订单

创建借贷项订单相关代码

*&----------调用BAPI参数定义--------(S)

DATA: GV_VBELN      TYPE BAPIVBELN-VBELN,

 GS_BAPISDHD1  TYPE BAPISDHD1,

 GS_BAPISDHD1X TYPE BAPISDHD1X,

 GS_BAPISDLS   TYPE BAPISDLS,

 GV_TESTRUN    TYPE TESTRUN,

 GT_RETURN     TYPE STANDARD TABLE OF BAPIRET2 WITH HEADER LINE,

 GS_RETURN     LIKE LINE OF GT_RETURN,

 GT_BAPISDITM  TYPE TABLE OF BAPISDITM WITH HEADER LINE,

 GT_BAPISDITMX TYPE TABLE OF BAPISDITMX WITH HEADER LINE,

 GT_BAPIPARNR  TYPE TABLE OF BAPIPARNR WITH HEADER LINE,

 GT_BAPISCHDL  TYPE TABLE OF BAPISCHDL WITH HEADER LINE,

 GT_BAPISCHDLX TYPE TABLE OF BAPISCHDLX WITH HEADER LINE,

 GT_BAPICOND   TYPE TABLE OF BAPICOND WITH HEADER LINE,

 GT_BAPICONDX  TYPE TABLE OF BAPICONDX WITH HEADER LINE,

 GS_BAPISDTEXT TYPE BAPISDTEXT,

 GT_BAPISDTEXT TYPE TABLE OF BAPISDTEXT,

 GS_BAPIPAREX  TYPE BAPIPAREX,

 GT_BAPIPAREX  TYPE TABLE OF BAPIPAREX,

 GS_BAPIPAREXX TYPE BAPIPAREXX,

 GT_BAPIPAREXX TYPE TABLE OF BAPIPAREX.

*      GS_BAPISDLS   TYPE BAPISDLS.

CLEAR:GS_BAPISDHD1,GS_BAPISDHD1X,GT_BAPISDITM[],GT_BAPISDITMX[],GT_BAPISCHDL[],GT_BAPISCHDLX[],GS_ZBAPE_VBAK,GS_ZBAPE_VBAKX,

GT_BAPIPAREX[],GT_BAPIPAREXX[].

 LOOP AT GT_DATA1 INTO GS_DATA1.

IF GS_DATA1-STATUS = ICON_LED_RED.

 message '不能选中错误数据导入'  TYPE 'E'.

ENDIF.

GS_BAPISDHD1-DOC_TYPE       = GS_DATA1-AUART."订单类型      1

GS_BAPISDHD1-SALES_ORG      = GS_DATA1-VKORG."销售组织      2

GS_BAPISDHD1-DISTR_CHAN     = GS_DATA1-VTWEG."分销渠道      3

GS_BAPISDHD1-DIVISION       = GS_DATA1-SPART."产品组        4

GS_BAPISDHD1-SALES_OFF      = GS_DATA1-VKBUR."销售办事处    5

GS_BAPISDHD1-SALES_GRP      = GS_DATA1-VKGRP."销售组        6

GS_BAPISDHD1-PURCH_NO_C     = GS_DATA1-BSTKD."客户参考      11

GS_BAPISDHD1-ORD_REASON     = GS_DATA1-AUGRU."订单原因       24

GS_BAPISDHD1X-DOC_TYPE      = 'X'.

GS_BAPISDHD1X-SALES_ORG     = 'X'.

GS_BAPISDHD1X-DISTR_CHAN    = 'X'.

GS_BAPISDHD1X-DIVISION      = 'X'.

GS_BAPISDHD1X-SALES_OFF     = 'X'.

GS_BAPISDHD1X-SALES_GRP     = 'X'.

GS_BAPISDHD1X-PURCH_NO_C    = 'X'."客户参考

GS_BAPISDHD1X-ORD_REASON    = 'X'.

LOOP AT GT_DATA INTO GS_DATA WHERE ZNUM = GS_DATA1-ZNUM.

 IF GS_DATA-STATUS <> ICON_LED_RED AND GS_DATA-VBELN IS INITIAL.

CLEAR GT_BAPISDITM.

GT_BAPISDITM-MATERIAL       = GS_DATA-MATNR."物料编码         13

GT_BAPISDITM-TARGET_VAL     = GS_DATA-KZWI3.

GT_BAPISDITM-CURRENCY       = GS_DATA-WAERK. " 17

GT_BAPISDITM-TARGET_QTY     = GS_DATA-KWMENG."下单数量   14

GT_BAPISDITM-PLANT          = GS_DATA-WERKS."发运工厂    19

GT_BAPISDITM-PURCH_NO_C     = GS_DATA-BSTKD."客户参考    11

GT_BAPISDITM-STORE_LOC      = GS_DATA-LGORT."发运库位    27

GT_BAPISDITM-CUST_MAT35     = GS_DATA-KDMAT."备注信息:旧订单号+旧订单行号    18

GT_BAPISDITM-DIVISION       = GS_DATA-SPART."产品组

GT_BAPISDITM-ITM_NUMBER     = GS_DATA-POSNR."销售订单行项目

GT_BAPISDITM-PURCH_DATE     = GS_DATA-BSTDK. "扣款单日期   12

GT_BAPISDITM-BATCH  = GS_DATA-CHARG.  " 25

APPEND GT_BAPISDITM.

 CLEAR GT_BAPISDITMX.

GT_BAPISDITMX-UPDATEFLAG    = '1'.

GT_BAPISDITMX-MATERIAL      = 'X'.

GT_BAPISDITMX-TARGET_VAL  = 'X'.

GT_BAPISDITMX-TARGET_QTY    = 'X'.

GT_BAPISDITMX-PLANT         = 'X'.

GT_BAPISDITMX-PURCH_NO_C    = 'X'.

GT_BAPISDITMX-STORE_LOC     = 'X'.

GT_BAPISDITMX-CUST_MAT35    = 'X'.

GT_BAPISDITMX-DIVISION      = 'X'.

GT_BAPISDITMX-PURCH_DATE    = 'X'.

GT_BAPISDITMX-BATCH   = 'X'.

append GT_BAPISDITMX.

CLEAR GT_BAPISCHDL.

GT_BAPISCHDL-ITM_NUMBER     = GS_DATA-POSNR."销售订单行项目

GT_BAPISCHDL-REQ_QTY        = GS_DATA-KWMENG."下单数量

GT_BAPISCHDL-REQ_DATE       = SY-DATUM."日期

APPEND  GT_BAPISCHDL.

CLEAR GT_BAPISCHDLX.

GT_BAPISCHDLX-UPDATEFLAG    = 'X'.

GT_BAPISCHDLX-ITM_NUMBER    = GS_DATA-POSNR."销售订单行项目

GT_BAPISCHDLX-REQ_QTY       = 'X'.

GT_BAPISCHDLX-REQ_DATE      = 'X'.

APPEND GT_BAPISCHDLX.

IF GS_DATA-ZGRN IS NOT INITIAL.

 GS_ZBAPE_VBAK-ZGRN           = GS_DATA-ZGRN. "

 GS_ZBAPE_VBAKX-ZGRN           = 'X'. "

ENDIF.

GS_BAPIPAREX-structURE        = 'BAPE_VBAK'.

GS_BAPIPAREX-VALUEPART1           = GS_ZBAPE_VBAK.

APPEND GS_BAPIPAREX TO GT_BAPIPAREX.

CLEAR GS_BAPIPAREX.

GS_BAPIPAREXX-STRUCTURE       = 'BAPE_VBAKX'.

GS_BAPIPAREXX-VALUEPART1         = GS_ZBAPE_VBAKX.

APPEND GS_BAPIPAREXX TO GT_BAPIPAREXX.

CLEAR GS_BAPIPAREXX.

CLEAR GT_BAPIPARNR.

GT_BAPIPARNR-PARTN_ROLE     = 'AG'.

GT_BAPIPARNR-PARTN_NUMB     = GS_DATA-KUNNR."售达方编码

APPEND GT_BAPIPARNR.

IF GS_DATA-KUNNR1 IS NOT INITIAL.

 GT_BAPIPARNR-PARTN_ROLE     = 'WE'.

 GT_BAPIPARNR-PARTN_NUMB     = GS_DATA-KUNNR1."送达方编码

 APPEND GT_BAPIPARNR.

ENDIF.

IF GS_DATA-LIFNR1 IS NOT INITIAL.

 GT_BAPIPARNR-PARTN_ROLE     = 'Z1'.

 GT_BAPIPARNR-PARTN_NUMB     = GS_DATA-LIFNR1."销售team

 APPEND GT_BAPIPARNR.

ENDIF.

IF GS_DATA-LIFNR2 IS NOT INITIAL.

 GT_BAPIPARNR-PARTN_ROLE     = 'Z2'.

 GT_BAPIPARNR-PARTN_NUMB     = GS_DATA-LIFNR2."销售leader

 APPEND GT_BAPIPARNR.

ENDIF.

IF GS_DATA-LIFNR3 IS NOT INITIAL.

 GT_BAPIPARNR-PARTN_ROLE     = 'Z3'.

 GT_BAPIPARNR-PARTN_NUMB     = GS_DATA-LIFNR3."销售员

 APPEND GT_BAPIPARNR.

ENDIF.

IF GS_DATA-LIFNR4 IS NOT INITIAL.

 GT_BAPIPARNR-PARTN_ROLE     = 'Z4'.

 GT_BAPIPARNR-PARTN_NUMB     = GS_DATA-LIFNR4."销售员

 APPEND GT_BAPIPARNR.

ENDIF.

CLEAR GT_BAPICOND.

GT_BAPICOND-ITM_NUMBER = GS_DATA-POSNR."销售订单行项目

GT_BAPICOND-CURRENCY = GS_DATA-WAERK.

GT_BAPICOND-COND_P_UNT = GS_DATA-KPEIN.

GT_BAPICOND-COND_VALUE = GS_DATA-KZWI3.

*        GT_BAPICOND-COND_UPDAT = 'X'.

APPEND GT_BAPICOND.

CLEAR GT_BAPICONDX.

GT_BAPICONDX-ITM_NUMBER = GS_DATA-POSNR."销售订单行项目

*        GT_BAPICONDX-COND_TYPE = 'X'.

GT_BAPICONDX-UPDATEFLAG = 'U'.

GT_BAPICONDX-CURRENCY = 'X'.

GT_BAPICONDX-COND_P_UNT = 'X'.

GT_BAPICONDX-COND_VALUE = 'X'.

APPEND GT_BAPICONDX.

 ENDIF.

ENDLOOP.

*        AT END OF ZNUM.

SORT GT_BAPIPARNR.

DELETE ADJACENT DUPLICATES FROM GT_BAPIPARNR COMPARING ALL fieldS.

GS_BAPISDLS-PRICING = 'C'.

CLEAR:GS_RETURN,GT_RETURN[].

CALL FUNCTION 'SD_SALESDOCUMENT_CREATE'

 EXPORTING

*       SALESDOCUMENT        =

SALES_HEADER_IN      = GS_BAPISDHD1

*        SALES_HEADER_INX     = GS_BAPISDHD1X

*       SENDER               =

*       binary_RELATIONSHIPTYPE       = ' '

*       INT_NUMBER_assignMENT         = ' '

*       BEHAVE_WHEN_ERROR    = ' '

LOGIC_SWITCH         = GS_BAPISDLS

*       BUSINESS_OBJECT      = ' '

*       TESTRUN              =

*       CONVERT_PARVW_AUART  = ' '

*       STATUS_BUFFER_REFRESH         = 'X'

*       CALL_ACTIVE          = ' '

*       I_WITHOUT_INIT       = ' '

 IMPORTING

SALESDOCUMENT_EX     = GV_VBELN

*       SALES_HEADER_OUT     =

*       SALES_HEADER_STATUS  =

 TABLES

RETURN               = GT_RETURN

SALES_ITEMS_IN       = GT_BAPISDITM

SALES_ITEMS_INX      = GT_BAPISDITMX

SALES_PARTNERS       = GT_BAPIPARNR

SALES_SCHEDULES_IN   = GT_BAPISCHDL

SALES_SCHEDULES_INX  = GT_BAPISCHDLX

SALES_CONDITIONS_IN  = GT_BAPICOND

SALES_CONDITIONS_INX = GT_BAPICONDX

SALES_TEXT           = GT_BAPISDTEXT

EXTENSIONIN          = GT_BAPIPAREX

EXTENSIONEX          = GT_BAPIPAREXX      .

CLEAR:GT_BAPISDITM[],GT_BAPISDITMX[],GT_BAPIPARNR[],GT_BAPIPARNR[],GT_BAPISCHDL[],GT_BAPISCHDLX[],GT_BAPICOND[].

CLEAR:GT_BAPICOND[],GT_BAPICOND[],GT_BAPISDTEXT[],GT_BAPIPAREX.

LOOP AT GT_RETURN INTO GS_RETURN.

 IF GS_RETURN-TYPE = 'E'.

CALL FUNCTION 'BAPI_transaction_rollback'.

GS_DATA-STATUS = ICON_RED_LIGHT.

GS_DATA-ZMESG = GS_RETURN-MESSAGE.

DATA : LV_NUM1 TYPE I.

LV_NUM1 = GS_DATA-ZNUM.

MODIFY GT_DATA FROM GS_DATA TRANSPORTING STATUS ZMESG WHERE ZNUM = LV_NUM1.

 ELSE.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

 EXPORTING

WaiT = 'X'.

GS_DATA-STATUS = ICON_GREEN_LIGHT.

GS_DATA-ZMESG = '成功创建借贷项订单'.

GS_DATA-VBELN = GV_VBELN.

DATA : LV_NUM2 TYPE I.

LV_NUM2 = GS_DATA-ZNUM.

MODIFY GT_DATA FROM GS_DATA TRANSPORTING STATUS ZMESG VBELN WHERE ZNUM = LV_NUM2.

 ENDIF.

ENDLOOP.

*        ENDAT.

CLEAR GS_DATA.

 ENDLOOP.

相关阅读

SQLServer之创建AFETER DELETE触发器

DML AFTER DELETE触发器创建原理 触发器触发时,系统自动在内存中创建deleted表或inserted表,inserted表临时保存了插入或更新后的

淘宝怎么看订单贷款还多少了?如何申请?

淘宝贷款为很多淘宝卖家解决了资金周转不易的问题,很多卖家都是通过淘宝订单贷款来筹得款项周转的。不过,很多卖家不知道怎么查看自

电商后台:实例解读订单系统

一个伟大的订单系统背后一定站着一大堆伟大的其他系统&#8211;电商产品狗说订单所涉及到的后台系统包括订单系统、库存系统、仓库

社区产品的氛围,如何定义和创建?

每个社区产品都希望用户在产品中感受到良好的氛围,符合自己产品调性的氛围,但是氛围在产品中的作用非常难以量化,暂时行业内也没有公

【Oracle】存储过程的创建,查看,执行和重新编译;

我在参加【中原银行】的【极客大赛】,请大家支持下我的队伍,给【农夫种豆队】投上您宝贵的一票(微信,无需注册,无需填写手机号码,点击一

分享到:

栏目导航

推荐阅读

热门阅读