蓝凌OA 蓝凌OA 蓝凌OA

蓝凌OA: 格式

FORM_VALUES = LV_JSON .
'“fd_3d26dad706bbd2.fd_3d26dc07553306”: [“1”,“2”]

FUNCTION ZFOA_050.
*“----------------------------------------------------------------------
"“本地接口:
*” EXPORTING
*” VALUE(RTYPE) TYPE CHAR1
*" VALUE(RTMSG) TYPE BAPI_MSG
*" TABLES
*" GT_HEADER STRUCTURE ZSMM037
*" GT_DETAIL STRUCTURE ZSMM019
*"----------------------------------------------------------------------

DATA: LV_PERSONNO1 TYPE CHAR12,
LV_PERSONNO2 TYPE CHAR12,
LV_PERSONNO3 TYPE CHAR12,
LV_PERSONNO4 TYPE CHAR12.
DATA: L_WEBSERVICE TYPE REF TO ZOA_CO_IKM_REVIEW_WEBSERVICE_S.
DATA: LV_ZBFB TYPE STRING, LV_ZBFB2 TYPE STRING .
DATA: LV_ZFIELD1 TYPE STRING,
LV_ZFIELD2 TYPE STRING,
LV_ZFIELD3 TYPE STRING,
LV_ZFIELD4 TYPE STRING,
LV_ZFIELD5 TYPE STRING,
LV_ZFIELD6 TYPE STRING,
LV_ZFIELD7 TYPE STRING,
LV_ZFIELD8 TYPE STRING,
LV_ZFIELD0 TYPE STRING,
LV_ZFIELD9 TYPE STRING,
LV_ZFIELD10 TYPE STRING.

DATA: LV_ZDOCTYP TYPE STRING,
LV_ZDOCTYP_TXT TYPE STRING.

DATA: LS_CONFIG TYPE ZTPLM_CONFIG .
DATA: BEGIN OF LS_ZNO ,
ZNO TYPE ZNO,
END OF LS_ZNO .

DATA: LT_ZNO LIKE TABLE OF LS_ZNO .
DATA: LO_APP_EXCEPTION TYPE REF TO CX_AI_APPLICATION_FAULT,
LO_SYS_EXCEPTION TYPE REF TO CX_AI_SYSTEM_FAULT,
LO_SYSTEM_FAULT TYPE REF TO CX_AI_SYSTEM_FAULT.

DATA: LWEB_ADD_REVIEW TYPE ZZADD_REVIEW1,
LWEB_ADD_REVIEW_RESPONSE TYPE ZZADD_REVIEW_RESPONSE1.

DATA: LV_JSON TYPE STRING,
LV_JSON1 TYPE STRING,
LV_JSONS TYPE STRING.
DATA LW_OBJECT TYPE PRX_LOGICAL_PORT_NAME.
DATA LR_JSON_SERIALIZER TYPE REF TO CL_TREX_JSON_SERIALIZER.
DATA LR_JSON_DESERIALIZER TYPE REF TO CL_TREX_JSON_DESERIALIZER.

ZFMPARAVALSAVE1 ‘ZFOA_050’.
ZFMPARAVALSAVE2 ‘B’.

SELECT SINGLE * INTO LS_CONFIG FROM ZTPLM_CONFIG WHERE CPROG = ‘ZMM003C’ AND SYSID = ‘ZLLOA’ .
IF SY-SUBRC NE 0 .
RTMSG = ‘请配置蓝凌模板ID’.
RTYPE = ‘E’.
ZFMPARAVALSAVE1 ‘ZFOA_050’.
ZFMPARAVALSAVE2 ‘R’.
RETURN .
ENDIF.

IF LINES( GT_DETAIL[] ) > 600 .
RTMSG = ‘发送行数项超出最大范围’.
RTYPE = ‘E’.
ZFMPARAVALSAVE2 ‘R’.
RETURN .
ENDIF.

CHECK GT_HEADER[] IS NOT INITIAL AND GT_DETAIL[] IS NOT INITIAL .
MOVE-CORRESPONDING GT_DETAIL[] TO LT_ZNO[] .
SORT LT_ZNO BY ZNO.
DELETE ADJACENT DUPLICATES FROM LT_ZNO .

TRY .
CREATE OBJECT L_WEBSERVICE
EXPORTING
LOGICAL_PORT_NAME = ‘ZLLOA’.

CATCH CX_AI_SYSTEM_FAULT  INTO LO_SYSTEM_FAULT.  " 捕获错误
  IF LO_SYSTEM_FAULT IS NOT INITIAL.
  •    MESSAGE LO_SYSTEM_FAULT->ERRORTEXT TYPE 'S' DISPLAY LIKE 'E'.
      RTMSG =   LO_SYSTEM_FAULT->ERRORTEXT .
      RTYPE = 'E'.
      RETURN.
    ENDIF.
    

    ENDTRY.

    CLEAR: LWEB_ADD_REVIEW,LWEB_ADD_REVIEW_RESPONSE.

    READ TABLE GT_HEADER INTO DATA(LS_HEADER) INDEX 1 .

  • lv_personno1 = ‘10401289’ .

LWEB_ADD_REVIEW-PARAMETERS-ARG0-DOC_CREATOR = ‘{“PersonNo”: "’ && LS_HEADER-ZIUSER && ‘"}’. " 流程发起人
LWEB_ADD_REVIEW-PARAMETERS-ARG0-DOC_STATUS = ‘20’.
LWEB_ADD_REVIEW-PARAMETERS-ARG0-DOC_SUBJECT = ‘生产平台单据:’ && LS_HEADER-ZNO .
LWEB_ADD_REVIEW-PARAMETERS-ARG0-FD_TEMPLATE_ID = LS_CONFIG-ZMBID . " ‘190c3a59d5ef564983f489148cdaf99a’ .

LV_ZDOCTYP = |“{ LS_HEADER-ZDOCTYP }”,| .
LV_ZDOCTYP_TXT = |“{ LS_HEADER-ZDOCTYP_TXT }”,| .

IF LS_HEADER-ZIUSER IS INITIAL .
RTMSG = ‘流程发起人为空,请检查’.
RTYPE = ‘E’.
RETURN .
ENDIF .

*** 处理明显
LOOP AT GT_DETAIL INTO DATA(LS_DETAIL) .

REPLACE ALL OCCURRENCES OF  '"' IN LS_DETAIL-MAKTX  WITH  '' ."去掉单引号
REPLACE ALL OCCURRENCES OF  CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB IN LS_DETAIL-MAKTX   WITH  '' ."去掉单引号
REPLACE ALL OCCURRENCES OF  '"' IN LS_DETAIL-MAKTX   WITH  '' ."去掉单引号
REPLACE ALL OCCURRENCES OF  CL_ABAP_CHAR_UTILITIES=>VERTICAL_TAB IN LS_DETAIL-MAKTX   WITH   '' ."去掉双引号
REPLACE ALL OCCURRENCES OF  CL_ABAP_CHAR_UTILITIES=>NEWLINE IN LS_DETAIL-MAKTX WITH          '' ."去掉逗号
REPLACE ALL OCCURRENCES OF  CL_ABAP_CHAR_UTILITIES=>CR_LF IN LS_DETAIL-MAKTX   WITH          '' ."去掉斜杠
REPLACE ALL OCCURRENCES OF  CL_ABAP_CHAR_UTILITIES=>FORM_FEED IN LS_DETAIL-MAKTX   WITH      '' ."去掉斜杠
IF LV_ZFIELD0 IS INITIAL  .
  LV_ZFIELD0  =  |"{ LS_DETAIL-ZNO }"|   .
  LV_ZFIELD1  =  |"{ LS_DETAIL-ZITEM }"|   .
  LV_ZFIELD2  =  |"{ LS_DETAIL-MATNR_1 }"|  .
  LV_ZFIELD3  =  |"{ LS_DETAIL-MATNR }"|  .
  LV_ZFIELD4  =  |"{ LS_DETAIL-ZQTY }"|   .
  LV_ZFIELD5  =  |"{ LS_DETAIL-MAKTX }"|  .
  LV_ZFIELD6  =  |"{ LS_DETAIL-WERKS }"|  .
  LV_ZFIELD7  =  |"{ LS_DETAIL-AUFNR }"|  .
  LV_ZFIELD8  =  |"{ LS_DETAIL-LGORT }"|  .
  LV_ZFIELD9  =  |"{ LS_DETAIL-MEINS }"|  .
  LV_ZFIELD10  =  |"{ LS_DETAIL-ZMARK }"|  .
ELSE .
  LV_ZFIELD0  =   LV_ZFIELD0  &&  |,"{ LS_DETAIL-ZNO }"|  .
  LV_ZFIELD1  =   LV_ZFIELD1  &&  |,"{ LS_DETAIL-ZITEM }"|  .
  LV_ZFIELD2  =   LV_ZFIELD2  &&  |,"{ LS_DETAIL-MATNR_1 }"|  .
  LV_ZFIELD3  =   LV_ZFIELD3  &&  |,"{ LS_DETAIL-MATNR }"|    .
  LV_ZFIELD4  =   LV_ZFIELD4  &&  |,"{ LS_DETAIL-ZQTY }"|     .
  LV_ZFIELD5  =   LV_ZFIELD5  &&  |,"{ LS_DETAIL-MAKTX }"|    .
  LV_ZFIELD6  =   LV_ZFIELD6  &&  |,"{ LS_DETAIL-WERKS }"|    .
  LV_ZFIELD7  =   LV_ZFIELD7  &&  |,"{ LS_DETAIL-AUFNR }"|    .
  LV_ZFIELD8  =   LV_ZFIELD8  &&  |,"{ LS_DETAIL-LGORT }"|    .
  LV_ZFIELD9  =   LV_ZFIELD9  &&  |,"{ LS_DETAIL-MEINS }"|    .
  LV_ZFIELD10  =   LV_ZFIELD10  &&  |,"{ LS_DETAIL-ZMARK }"|    .
ENDIF.

ENDLOOP .

LV_JSON = ‘{’ &&
‘“fd_3d26dbee7fd736”:’ && LV_ZDOCTYP && “90”’ && " 单据类型
‘“fd_3d26dbef5a3d7e”:’ && LV_ZDOCTYP_TXT && " 单据类型描述
‘“fd_3d26dad706bbd2”: {’ && " 明细表 fd_3d26dad706bbd2.fd_3d26dbe33c54b8
‘“fd_3d26dad706bbd2.fd_3d26dbe33c54b8”: [’ && " 行号
LV_ZFIELD0 && "
‘],’ &&
‘“fd_3d26dad706bbd2.fd_3d26dbfc440158”: [’ && " 行号
LV_ZFIELD1 && "
‘],’ && "
‘“fd_3d26dad706bbd2.fd_3d26dbfef471ac”: [’ && " 订单成品物料编号 MATNR_1
LV_ZFIELD2 && "
‘],’ &&
‘“fd_3d26dad706bbd2.fd_3d26dbfff99312”: [’ && " 物料编码
LV_ZFIELD3 &&
‘],’ &&
‘“fd_3d26dad706bbd2.fd_3d26dc013e5aea”: [’ && " 数量
LV_ZFIELD4 &&
‘],’ &&
‘“fd_3d26dad706bbd2.fd_3d26dc0280826a”: [’ && " 物料描述 MAKTX
LV_ZFIELD5 &&
‘],’ &&
‘“fd_3d26dad706bbd2.fd_3d26dc039be540”: [’ && " 工厂
LV_ZFIELD6 &&
’ ],’ &&
‘“fd_3d26dad706bbd2.fd_3d26dc04c7f9a8”: [’ && " 工单号 AUFNR
LV_ZFIELD7 &&
‘],’ &&
‘“fd_3d26dad706bbd2.fd_3d26dc05f6eb62”: [’ && " 库存地点
LV_ZFIELD8 &&
‘],’ &&
‘“fd_3d26dad706bbd2.fd_3d2afb2c98347e”: [’ && " 行备注
LV_ZFIELD10 &&
‘],’ &&
‘“fd_3d26dad706bbd2.fd_3d26dc07553306”: [’ && " 单位
LV_ZFIELD9 &&
‘]’ &&
‘}’ && ‘}’.

LWEB_ADD_REVIEW-PARAMETERS-ARG0-FORM_VALUES = LV_JSON .

**ZTOALOG
DATA : LS_LOG TYPE ZTOALOG .

TRY.

  CALL METHOD L_WEBSERVICE->ADD_REVIEW
    EXPORTING
      ADD_REVIEW          = LWEB_ADD_REVIEW
    IMPORTING
      ADD_REVIEW_RESPONSE = LWEB_ADD_REVIEW_RESPONSE.

  IF  LWEB_ADD_REVIEW_RESPONSE-PARAMETERS-RETURN IS NOT INITIAL .
    DATA(LS_MSG)  = LWEB_ADD_REVIEW_RESPONSE-PARAMETERS-RETURN .
    DATA(LV_LEN)  = STRLEN( LS_MSG ) .
    IF LV_LEN = 32  .
      COMMIT WORK .
      RTMSG =   ''.
      RTYPE =  'S'.
    ELSE .
      RTMSG =   LWEB_ADD_REVIEW_RESPONSE-PARAMETERS-RETURN.
      RTYPE =  'E'.
    ENDIF.
  ENDIF.

CATCH CX_AI_SYSTEM_FAULT INTO LO_SYS_EXCEPTION.   " 捕获错误
  IF LO_SYS_EXCEPTION IS NOT INITIAL.
    RTMSG =  LO_SYS_EXCEPTION->ERRORTEXT  .
    RTYPE =  'E'.
  ENDIF.
CATCH CX_AI_APPLICATION_FAULT INTO LO_APP_EXCEPTION.
  IF LO_APP_EXCEPTION IS NOT INITIAL.
    DATA(LV_TEXT) = LO_APP_EXCEPTION->GET_TEXT( ) .
    RTMSG =  LV_TEXT  .
    RTYPE =  'E'.
  ENDIF.

ENDTRY.

LV_JSON1 = /UI2/CL_JSON=>SERIALIZE(
DATA = LT_ZNO
COMPRESS = ABAP_FALSE
PRETTY_NAME = /UI2/CL_JSON=>PRETTY_MODE-CAMEL_CASE ) .

LS_LOG-GUID = CL_SYSTEM_UUID=>IF_SYSTEM_UUID_STATIC~CREATE_UUID_X16( ) .
LS_LOG-ZTYPEOA = ‘10’ .
LS_LOG-UNAME = SY-UNAME .
LS_LOG-DATUM = SY-DATUM .
LS_LOG-UZEIT = SY-UZEIT .
LS_LOG-CREATR = LS_HEADER-ZIUSER .
LS_LOG-ZJSON_IN = LV_JSON1 .
LS_LOG-ZJSON_OUT = LWEB_ADD_REVIEW_RESPONSE-PARAMETERS-RETURN .
MODIFY ZTOALOG FROM LS_LOG .

ZFMPARAVALSAVE1 ‘ZFOA_050’.
ZFMPARAVALSAVE2 ‘R’.

ENDFUNCTION.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值