CRM 函数 CRM_ORDER_MAINTAIN

CRM_ORDER_MAINTAIN 来做 一个请求支付的数据 明细作成和删除

但是开始 总是没法更新, 最后让客户方的人 帮忙 才解决问题,

因为急于交付 所以  没有仔细调整内部数据,直接照搬 过来了,功能能够正常实现

 

1 业务 逻辑

  A  通过 CRM_ORDER_READ 读取 order 明细

 B  根据条件 判断 明细作成 还是删除

 C 数据更新

 

其中 通过函数CRM_ORDER_READ 读取到得数据的结构 和 CRM_ORDER_MAINTAIN 不一样

前一个用的都是 后缀WRK, 后一个有的是后缀 COM

所以要一个个 操作

 

更新两个表 BILLPLAN 是更新 BILLPLAN_DATES里的 BILL_VALUE ,BILL_TIME ,BILLPLAN_MODE

新作成的 mode 设定为A 或者可以不设定  ,删除的用 D

其余的字段没啥用,

 

最重要的就是INPUT_FIELDS

每条BILLPLAN 都要作成 更新 和删除 两条数据

(有N条BILLPLAN  ,BILLPLAN 里 有M条数据的话,INPUT_FIELDS 里就有 2N*M条 明细数据)

 

        LDS_FIELD_NAMES-FIELDNAME = 'BILL_DATE'.
        INSERT  LDS_FIELD_NAMES INTO  TABLE  LDT_FIELD_NAMES.

        LDS_FIELD_NAMES-FIELDNAME = 'BILL_VALUE'.
        INSERT  LDS_FIELD_NAMES INTO  TABLE  LDT_FIELD_NAMES.

 

 

        CLEAR  LDS_INPUT_FILEDS.
        LDS_INPUT_FILEDS-REF_GUID = LDS_ET_BILLPLAN-REF_GUID.
        LDS_INPUT_FILEDS-REF_KIND =  'B'.


   * 更新        

    LDS_INPUT_FILEDS-LOGICAL_KEY = LDS_BILLPLAN_DATES_C-HANDLE.
        CONCATENATEDH ’ LDS_INPUT_FILEDS-LOGICAL_KEY  INTO
          LDS_INPUT_FILEDS-LOGICAL_KEY.

    * 删除用

        LDS_INPUT_FILEDS-LOGICAL_KEY = LDS_BILLPLAN_DATES-GUID.
        CONCATENATEDG ’ LDS_INPUT_FILEDS-LOGICAL_KEY  INTO
          LDS_INPUT_FILEDS-LOGICAL_KEY.

        LDS_INPUT_FILEDS-OBJECTNAME =  'BILLPLAN'.
        LDS_INPUT_FILEDS-FIELD_NAMES  = LDT_FIELD_NAMES.
        INSERT  LDS_INPUT_FILEDS INTO  TABLE  LDT_INPUT_FIELDS.


 

 

 CALL  FUNCTION  'CRM_ORDER_MAINTAIN'
    EXPORTING
      IT_BILLPLAN       = IT_BILLPLAN
    IMPORTING
      ET_EXCEPTION      = ET_ET_EXCEPTION"EC NEEDEN
    CHANGING
      CT_INPUT_FIELDS   = CT_INPUT_FIELDS
    EXCEPTIONS
      ERROR_OCCURRED    = 1
      DOCUMENT_LOCKED   = 2
      NO_CHANGE_ALLOWED = 3
      NO_AUTHORITY      = 4
      OTHERS             = 5 .

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值