现在的位置: 首页 > 综合 > 正文

CRM 函数 CRM_ORDER_MAINTAIN

2013年10月02日 ⁄ 综合 ⁄ 共 1639字 ⁄ 字号 评论关闭

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.
        CONCATENATE
DH
’ LDS_INPUT_FILEDS-LOGICAL_KEY  INTO

          LDS_INPUT_FILEDS-LOGICAL_KEY.

    * 删除用

        LDS_INPUT_FILEDS-LOGICAL_KEY = LDS_BILLPLAN_DATES-GUID.
        CONCATENATE
DG
’ 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
.

抱歉!评论已关闭.