SAP 物料主数据 PRD覆盖QAS实现-物料主数据同步

119 篇文章 9 订阅

上期提到SAP PRD覆盖QAS 替代方案构想-CSDN博客

这一期把物料主数据同步实现了

 DATA: LS_MARA   TYPE ZMMS_IF_MATERIAL_MARA,
        LS_MARM   TYPE ZMMS_IF_MATERIAL_MARM,
        LS_MARC   TYPE ZMMS_IF_MATERIAL_MARC,
        LS_QMAT   TYPE ZMMS_IF_MATERIAL_QMAT,
        LS_MBEW   TYPE ZMMS_IF_MATERIAL_MBEW,
        LS_MVKE   TYPE ZMMS_IF_MATERIAL_MVKE,
        LS_MLGN   TYPE ZMMS_IF_MATERIAL_MLGN,
        LS_MARD   TYPE ZMMS_IF_MATERIAL_MARD,
        LS_RETURN TYPE ZMMS_IF_RETURN.

  DATA: LT_MARA LIKE TABLE OF LS_MARA,
        LT_MARM LIKE TABLE OF  LS_MARM,
        LT_MARC LIKE TABLE OF  LS_MARC,
        LT_QMAT LIKE TABLE OF  LS_QMAT,
        LT_MBEW LIKE TABLE OF  LS_MBEW,
        LT_MVKE LIKE TABLE OF  LS_MVKE,
        LT_MARD LIKE TABLE OF  LS_MARD,
        LT_MLGN LIKE TABLE OF  LS_MLGN.
  DATA:LTOKEN TYPE STRING.
  DATA: LL_LINES(10),"行数
        LL_TABIX(10),"循环标号
        LL_PECNT     TYPE P LENGTH 6 DECIMALS 2, "百分比
        LL_PECET(6),"百分数
        LL_TEXT(40)."消息
  CLEAR: LL_LINES,LL_TABIX,LL_PECNT,LL_PECET,LL_TEXT.

  DATA: LEN            TYPE        I, "发送报文长度
        LEN_STRING     TYPE        STRING,
        URL            TYPE        STRING, "接口地址
        SQLSTR         TYPE STRING,
        LV_URL         TYPE AGR_URL,
        LV_URL_STR     TYPE STRING,
        HTTP_CLIENT    TYPE REF TO IF_HTTP_CLIENT, "http客户端
        LV_SERVER_NAME TYPE ZE_SERVER_NAME,
        POST_STRING    TYPE        STRING,
        RESULT         TYPE        STRING,
        LTIMEEND       TYPE STRING, "时间戳结束
        LTIMEST        TYPE STRING. "时间戳开始
  DATA: L_JSON_ROOT_OBJECT TYPE REF TO ZCL_MDP_JSON_NODE.
  DATA: L_ERRORTYPE_OBJECT TYPE REF TO ZCL_MDP_JSON_NODE.
  DATA: L_SAP_TEST_OBJECT TYPE REF TO ZCL_MDP_JSON_NODE.
  DATA: L_ERRORNO_OBJECT TYPE REF TO ZCL_MDP_JSON_NODE.
  DATA: L_SAP_TEST_ROW1_OBJECT TYPE REF TO ZCL_MDP_JSON_NODE.
  DATA: L_SAP_TEST_FUNC_ID_OBJECT TYPE REF TO ZCL_MDP_JSON_NODE.
  DATA: LTAR TYPE TABLE OF ZCL_MDP_JSON_NODE=>TYP_ARRAY_CHILDREN.
  DATA: LMATNR TYPE MARA-MATNR.
  LV_URL_STR = 'http://10.10.165.11:50000/RESTAdapter/sap/query?j_username=JACK_COM&j_password=Jk87651234'.
  SQLSTR = 'SELECT top 10 MATNR from MARA'.
  PERFORM FRM_SYNOBJ(ZABAP_COMMON_PROGRAM) USING LV_URL_STR SQLSTR CHANGING L_JSON_ROOT_OBJECT.

  DATA: L_STRING TYPE STRING.
  L_ERRORTYPE_OBJECT = L_JSON_ROOT_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'RESULT').
  LTAR  = L_ERRORTYPE_OBJECT->ARRAY_CHILDREN().
  LOOP AT LTAR INTO DATA(LSAR).
    L_SAP_TEST_OBJECT = LSAR-NODE.
    L_SAP_TEST_FUNC_ID_OBJECT  =  L_SAP_TEST_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'MATNR' ).
    LMATNR = L_SAP_TEST_FUNC_ID_OBJECT->VALUE.
    clear: LT_MARA[],LT_MARM[],LT_MARC[],LT_QMAT[],LT_MBEW[],LT_MVKE[],LT_MARD[].
    PERFORM GETMARA USING LV_URL_STR LMATNR CHANGING LT_MARA.
    PERFORM GETMARM USING LV_URL_STR LMATNR CHANGING LT_MARM.
    PERFORM GETMARC USING LV_URL_STR LMATNR CHANGING LT_MARC.
    PERFORM GETQMAT USING LV_URL_STR LMATNR CHANGING LT_QMAT.
    PERFORM GETMBEW USING LV_URL_STR LMATNR CHANGING LT_MBEW.
    PERFORM GETMVKE USING LV_URL_STR LMATNR CHANGING LT_MVKE.
*    PERFORM GETMLGN USING LV_URL_STR LMATNR CHANGING LT_MLGN."无数据
    PERFORM GETMARD USING LV_URL_STR LMATNR CHANGING LT_MARD.

    CALL FUNCTION 'ZRFC_MATERIAL_SAVE'
      IMPORTING
        E_RETURN = LS_RETURN
      TABLES
        T_MARA   = LT_MARA
        T_MARM   = LT_MARM
        T_MARC   = LT_MARC
        T_QMAT   = LT_QMAT
        T_MBEW   = LT_MBEW
        T_MVKE   = LT_MVKE
        T_MLGN   = LT_MLGN
        T_MARD   = LT_MARD.
    READ TABLE LT_MARA INTO LS_MARA INDEX 1.
    IF LS_RETURN-MSGTY = 'S'.
      WRITE:/ '物料' && LS_MARA-MATERIAL && '保存成功'.
    ELSE.
      WRITE:/ '物料' && LS_MARA-MATERIAL && '维护有问题,参考' &&  LS_MARA-MESSAGE.
    ENDIF.
  ENDLOOP.
ENDFORM.

FORM GETMARD USING PURL TYPE STRING PMATNR TYPE MATNR CHANGING  LT_MARD TYPE STANDARD TABLE.
  DATA: LS_MARD TYPE ZMMS_IF_MATERIAL_MARD.
  DATA:SQLSTR TYPE STRING.
  DATA: L_JSON_ROOT_OBJECT TYPE REF TO ZCL_MDP_JSON_NODE.
  DATA: L_ERRORTYPE_OBJECT TYPE REF TO ZCL_MDP_JSON_NODE.
  DATA: LTAR TYPE TABLE OF ZCL_MDP_JSON_NODE=>TYP_ARRAY_CHILDREN.
  DATA: L_SAP_ROW_OBJECT TYPE REF TO ZCL_MDP_JSON_NODE.
  DATA: L_SAP_COL_OBJECT TYPE REF TO ZCL_MDP_JSON_NODE.
  DATA: LPPSTAT TYPE MARA-PSTAT.

  SQLSTR = 'SELECT MARD.MATNR,MARD.WERKS,MARD.LGORT,MARD.LGPBE,MARC.XCHPF,MARC.XMCNG FROM MARD JOIN MARC ON MARD.MANDT = MARC.MANDT AND MARC.WERKS = MARD.WERKS and marc.matnr = mard.matnr WHERE  MARD.MANDT = 800 AND MARD.MATNR = ''' && PMATNR && ''''.
  PERFORM FRM_SYNOBJ(ZABAP_COMMON_PROGRAM) USING PURL SQLSTR CHANGING L_JSON_ROOT_OBJECT.
  L_ERRORTYPE_OBJECT = L_JSON_ROOT_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'RESULT').
  LTAR  = L_ERRORTYPE_OBJECT->ARRAY_CHILDREN().
  LOOP AT LTAR INTO DATA(LSAR).
    CLEAR LS_MARD.
    L_SAP_ROW_OBJECT = LSAR-NODE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'MATNR' ).
    LS_MARD-ZMATERIAL = L_SAP_COL_OBJECT->VALUE.
    LS_MARD-MATERIAL = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'WERKS' ).
    LS_MARD-PLANT = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'LGORT' ).
    LS_MARD-STGE_LOC = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'LGPBE' ).
    LS_MARD-STGE_BIN = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'XCHPF' ).
    LS_MARD-BATCH_MGMT = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'XMCNG' ).
    LS_MARD-NEG_STOCKS = L_SAP_COL_OBJECT->VALUE.
    APPEND LS_MARD TO LT_MARD.
  ENDLOOP.
ENDFORM.

FORM GETMLGN USING PURL TYPE STRING PMATNR TYPE MATNR CHANGING  LT_MLGN TYPE STANDARD TABLE.
  DATA: LS_MLGN TYPE ZMMS_IF_MATERIAL_MLGN.
  DATA:SQLSTR TYPE STRING.
  DATA: L_JSON_ROOT_OBJECT TYPE REF TO ZCL_MDP_JSON_NODE.
  DATA: L_ERRORTYPE_OBJECT TYPE REF TO ZCL_MDP_JSON_NODE.
  DATA: LTAR TYPE TABLE OF ZCL_MDP_JSON_NODE=>TYP_ARRAY_CHILDREN.
  DATA: L_SAP_ROW_OBJECT TYPE REF TO ZCL_MDP_JSON_NODE.
  DATA: L_SAP_COL_OBJECT TYPE REF TO ZCL_MDP_JSON_NODE.
  DATA: LPPSTAT TYPE MARA-PSTAT.

  SQLSTR = 'SELECT MATNR,LGNUM,PLKPT,LTKZE,LTKZA from MLGN  where  MLGN.mandt = 800 and MLGN.matnr = ''' && PMATNR && ''''.
  PERFORM FRM_SYNOBJ(ZABAP_COMMON_PROGRAM) USING PURL SQLSTR CHANGING L_JSON_ROOT_OBJECT.
  L_ERRORTYPE_OBJECT = L_JSON_ROOT_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'RESULT').
  LTAR  = L_ERRORTYPE_OBJECT->ARRAY_CHILDREN().
  LOOP AT LTAR INTO DATA(LSAR).
    CLEAR LS_MLGN.
    L_SAP_ROW_OBJECT = LSAR-NODE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'MATNR' ).
    LS_MLGN-ZMATERIAL = L_SAP_COL_OBJECT->VALUE.
    LS_MLGN-MATERIAL = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'LGNUM' ).
    LS_MLGN-WHSE_NO = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'PLKPT' ).
    LS_MLGN-STGE_TYPE = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'LTKZE' ).
    LS_MLGN-PLACEMENT = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'LTKZA' ).
    LS_MLGN-WITHDRAWAL = L_SAP_COL_OBJECT->VALUE.
*     L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'LGPBE' ).
*    LS_MLGN-STGE_BIN = L_SAP_COL_OBJECT->VALUE.
    APPEND LS_MLGN TO LT_MLGN.
  ENDLOOP.
ENDFORM.

FORM GETMVKE USING PURL TYPE STRING PMATNR TYPE MATNR CHANGING  LT_MVKE TYPE STANDARD TABLE.
  DATA: LS_MVKE TYPE ZMMS_IF_MATERIAL_MVKE.
  DATA:SQLSTR TYPE STRING.
  DATA: L_JSON_ROOT_OBJECT TYPE REF TO ZCL_MDP_JSON_NODE.
  DATA: L_ERRORTYPE_OBJECT TYPE REF TO ZCL_MDP_JSON_NODE.
  DATA: LTAR TYPE TABLE OF ZCL_MDP_JSON_NODE=>TYP_ARRAY_CHILDREN.
  DATA: L_SAP_ROW_OBJECT TYPE REF TO ZCL_MDP_JSON_NODE.
  DATA: L_SAP_COL_OBJECT TYPE REF TO ZCL_MDP_JSON_NODE.
  DATA: LPPSTAT TYPE MARA-PSTAT.

  SQLSTR = 'SELECT MVKE.*,MLAN.ALAND,MLAN.TAXM1,MARC.SERNP FROM MVKE JOIN MLAN ON MLAN.MANDT = MVKE.MANDT AND MLAN.MATNR = MVKE.MATNR LEFT JOIN MARC ON MARC.MANDT = MVKE.MANDT AND MARC.MATNR = MVKE.MANDT  WHERE  MVKE.MANDT = 800 AND MVKE.MATNR = ''' &&
PMATNR && ''''.
  PERFORM FRM_SYNOBJ(ZABAP_COMMON_PROGRAM) USING PURL SQLSTR CHANGING L_JSON_ROOT_OBJECT.
  L_ERRORTYPE_OBJECT = L_JSON_ROOT_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'RESULT').
  LTAR  = L_ERRORTYPE_OBJECT->ARRAY_CHILDREN().
  LOOP AT LTAR INTO DATA(LSAR).
    CLEAR LS_MVKE.
    L_SAP_ROW_OBJECT = LSAR-NODE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'MATNR' ).
    LS_MVKE-ZMATERIAL = L_SAP_COL_OBJECT->VALUE.
    LS_MVKE-MATERIAL = L_SAP_COL_OBJECT->VALUE.
*    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'WERKS' ).
*    LS_MVKE-PLANT = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'VKORG' ).
    LS_MVKE-SALES_ORG = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'VTWEG' ).
    LS_MVKE-DISTR_CHAN = L_SAP_COL_OBJECT->VALUE.

    SELECT * FROM MVKE WHERE MATNR = @LS_MVKE-MATERIAL AND VKORG = @LS_MVKE-SALES_ORG
      and VTWEG = @LS_MVKE-DISTR_CHAN
    INTO TABLE @DATA(LTTMP).
    IF LTTMP[] IS INITIAL.
      LS_MVKE-FUNCTION = 'INS'.
    ELSE.
      LS_MVKE-FUNCTION = 'UPD'.
    ENDIF.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'DWERK' ).
    LS_MVKE-DELYG_PLNT = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'KTGRM' ).
    LS_MVKE-ACCT_ASSGT = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'MTPOS' ).
    LS_MVKE-ITEM_CAT = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'MVGR1' ).
    LS_MVKE-MATL_GRP_1 = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'MVGR2' ).
    LS_MVKE-MATL_GRP_2 = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'VRKME' ).
    LS_MVKE-SALES_UNIT = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'AUMNG' ).
    LS_MVKE-MIN_ORDER = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ALAND' ).
    LS_MVKE-DEPCOUNTRY = L_SAP_COL_OBJECT->VALUE.
*    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'TATYP' ).
*    LS_MVKE-TAX_TYPE_1 = L_SAP_COL_OBJECT->VALUE.
    LS_MVKE-TAX_TYPE_1 = 'MWST'.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'TAXM1' ).
    LS_MVKE-TAXCLASS_1 = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'VERSG' ).
    LS_MVKE-MATL_STATS = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'PROVG' ).
    LS_MVKE-COMM_GROUP = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'SERNP' ).
    LS_MVKE-SERNO_PROF = L_SAP_COL_OBJECT->VALUE.
    APPEND LS_MVKE TO LT_MVKE.
  ENDLOOP.

ENDFORM.
FORM GETMBEW USING PURL TYPE STRING PMATNR TYPE MATNR CHANGING  LT_MBEW TYPE STANDARD TABLE.
  DATA: LS_MBEW TYPE ZMMS_IF_MATERIAL_MBEW.
  DATA:SQLSTR TYPE STRING.
  DATA: L_JSON_ROOT_OBJECT TYPE REF TO ZCL_MDP_JSON_NODE.
  DATA: L_ERRORTYPE_OBJECT TYPE REF TO ZCL_MDP_JSON_NODE.
  DATA: LTAR TYPE TABLE OF ZCL_MDP_JSON_NODE=>TYP_ARRAY_CHILDREN.
  DATA: L_SAP_ROW_OBJECT TYPE REF TO ZCL_MDP_JSON_NODE.
  DATA: L_SAP_COL_OBJECT TYPE REF TO ZCL_MDP_JSON_NODE.
  DATA: LPPSTAT TYPE MARA-PSTAT.

  SQLSTR = 'SELECT MBEW.* FROM MBEW WHERE  MBEW.MANDT = 800 AND MBEW.MATNR = ''' && PMATNR && ''''.
  PERFORM FRM_SYNOBJ(ZABAP_COMMON_PROGRAM) USING PURL SQLSTR CHANGING L_JSON_ROOT_OBJECT.
  L_ERRORTYPE_OBJECT = L_JSON_ROOT_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'RESULT').
  LTAR  = L_ERRORTYPE_OBJECT->ARRAY_CHILDREN().
  LOOP AT LTAR INTO DATA(LSAR).
    CLEAR LS_MBEW.
    L_SAP_ROW_OBJECT = LSAR-NODE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'MATNR' ).
    LS_MBEW-ZMATERIAL = L_SAP_COL_OBJECT->VALUE.
    LS_MBEW-MATERIAL = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'BWKEY' ).
    LS_MBEW-VAL_AREA = L_SAP_COL_OBJECT->VALUE.
    SELECT * FROM MBEW WHERE MATNR = @LS_MBEW-MATERIAL AND BWKEY = @LS_MBEW-VAL_AREA
    INTO TABLE @DATA(LTTMP).
    IF LTTMP[] IS INITIAL.
      LS_MBEW-FUNCTION = 'INS'.
    ELSE.
      LS_MBEW-FUNCTION = 'UPD'.
    ENDIF.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'BWTAR' ).
    LS_MBEW-VAL_TYPE = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'BKLAS' ).
    LS_MBEW-VAL_CLASS = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'VPRSV' ).
    LS_MBEW-PRICE_CTRL = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'VERPR' ).
    LS_MBEW-MOVING_PR = L_SAP_COL_OBJECT->VALUE.
*    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'STPRS' ).
*    LS_MBEW-STD_PRICE = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'PEINH' ).
    LS_MBEW-PRICE_UNIT = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'EKALR' ).
    LS_MBEW-QTY_STRUCT = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'HKMAT' ).
    LS_MBEW-ORIG_MAT = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'QKLAS' ).
    LS_MBEW-VM_P_STOCK = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'MLAST' ).
    LS_MBEW-ML_SETTLE = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ZPLP1' ).
    LS_MBEW-PLNDPRICE1 = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ZPLP2' ).
    LS_MBEW-PLNDPRICE2 = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ZPLP3' ).
    LS_MBEW-PLNDPRICE3 = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ZPLD1' ).
    LS_MBEW-PLNDPRDATE1 = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ZPLD2' ).
    LS_MBEW-PLNDPRDATE2 = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ZPLD3' ).
    LS_MBEW-PLNDPRDATE3 = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'BWTTY' ).
    LS_MBEW-VAL_CAT = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'KOSGR' ).
    LS_MBEW-OVERHEAD_GRP = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'HRKFT' ).
    LS_MBEW-ORIG_GROUP = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'MLMAA' ).
    LS_MBEW-ML_ACTIVE = L_SAP_COL_OBJECT->VALUE.
*    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ZPLD3' ).
    LS_MBEW-SPECPROCTY = L_SAP_COL_OBJECT->VALUE.
*    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ZPLD3' ).
*    LS_MBEW-IND_POST_TO_INSP_STOCK = L_SAP_COL_OBJECT->VALUE.
    APPEND LS_MBEW TO LT_MBEW.
  ENDLOOP.
ENDFORM.

FORM GETQMAT USING PURL TYPE STRING PMATNR TYPE MATNR CHANGING  LT_QMAT TYPE STANDARD TABLE.
  DATA: LS_MARQ TYPE ZMMS_IF_MATERIAL_QMAT.
  DATA:SQLSTR TYPE STRING.
  DATA: L_JSON_ROOT_OBJECT TYPE REF TO ZCL_MDP_JSON_NODE.
  DATA: L_ERRORTYPE_OBJECT TYPE REF TO ZCL_MDP_JSON_NODE.
  DATA: LTAR TYPE TABLE OF ZCL_MDP_JSON_NODE=>TYP_ARRAY_CHILDREN.
  DATA: L_SAP_ROW_OBJECT TYPE REF TO ZCL_MDP_JSON_NODE.
  DATA: L_SAP_COL_OBJECT TYPE REF TO ZCL_MDP_JSON_NODE.
  DATA: LPPSTAT TYPE MARA-PSTAT.

  SQLSTR = 'SELECT QMAT.* FROM QMAT WHERE  QMAT.MANDT = 800 AND QMAT.MATNR = ''' && PMATNR && ''''.
  PERFORM FRM_SYNOBJ(ZABAP_COMMON_PROGRAM) USING PURL SQLSTR CHANGING L_JSON_ROOT_OBJECT.
  L_ERRORTYPE_OBJECT = L_JSON_ROOT_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'RESULT').
  LTAR  = L_ERRORTYPE_OBJECT->ARRAY_CHILDREN().
  LOOP AT LTAR INTO DATA(LSAR).
    CLEAR LS_MARQ.
    L_SAP_ROW_OBJECT = LSAR-NODE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'MATNR' ).
    LS_MARQ-ZMATERIAL = L_SAP_COL_OBJECT->VALUE.
    LS_MARQ-MATERIAL = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'WERKS' ).
    LS_MARQ-PLANT = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ART' ).
    LS_MARQ-INSPTYPE = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'AKTIV' ).
    LS_MARQ-IND_INSPTYPE_MAT_ACTIVE = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'MPDAU' ).
    LS_MARQ-AVE_INSP_DURATION = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'INSMK' ).
    LS_MARQ-IND_POST_TO_INSP_STOCK = L_SAP_COL_OBJECT->VALUE.

    APPEND LS_MARQ TO LT_QMAT.
  ENDLOOP.
ENDFORM.


FORM GETMARC USING PURL TYPE STRING PMATNR TYPE MATNR CHANGING  LT_MARC TYPE STANDARD TABLE.
  DATA: LS_MARC TYPE ZMMS_IF_MATERIAL_MARC.
  DATA:SQLSTR TYPE STRING.
  DATA: L_JSON_ROOT_OBJECT TYPE REF TO ZCL_MDP_JSON_NODE.
  DATA: L_ERRORTYPE_OBJECT TYPE REF TO ZCL_MDP_JSON_NODE.
  DATA: LTAR TYPE TABLE OF ZCL_MDP_JSON_NODE=>TYP_ARRAY_CHILDREN.
  DATA: L_SAP_ROW_OBJECT TYPE REF TO ZCL_MDP_JSON_NODE.
  DATA: L_SAP_COL_OBJECT TYPE REF TO ZCL_MDP_JSON_NODE.
  DATA: LPPSTAT TYPE MARA-PSTAT.

  SQLSTR = 'SELECT MARC.*,MARA.MHDRZ,MARA.MHDHB FROM MARC JOIN MARA ON MARA.MANDT = MARC.MANDT AND MARA.MATNR = MARC.MATNR WHERE  MARC.MANDT = 800 AND MARC.MATNR = ''' && PMATNR && ''''.
  PERFORM FRM_SYNOBJ(ZABAP_COMMON_PROGRAM) USING PURL SQLSTR CHANGING L_JSON_ROOT_OBJECT.
  L_ERRORTYPE_OBJECT = L_JSON_ROOT_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'RESULT').
  LTAR  = L_ERRORTYPE_OBJECT->ARRAY_CHILDREN().
  LOOP AT LTAR INTO DATA(LSAR).
    CLEAR LS_MARC.
    L_SAP_ROW_OBJECT = LSAR-NODE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'MATNR' ).
    LS_MARC-ZMATERIAL = L_SAP_COL_OBJECT->VALUE.
    LS_MARC-MATERIAL = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'WERKS' ).
    LS_MARC-PLANT = L_SAP_COL_OBJECT->VALUE.
    SELECT * FROM MARC WHERE MATNR = @LS_MARC-MATERIAL AND WERKS = @LS_MARC-PLANT
      INTO TABLE @DATA(LTTMP).
    IF LTTMP[] IS INITIAL.
      LS_MARC-FUNCTION = 'INS'.
    ELSE.
      LS_MARC-FUNCTION = 'UPD'.
    ENDIF.

    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'DISGR' ).
    LS_MARC-MRP_GROUP = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'BESKZ' ).
    LS_MARC-PROC_TYPE = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'SOBSL' ).
    LS_MARC-SPPROCTYPE = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'MMSTA' ).
    LS_MARC-PUR_STATUS = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'DISMM' ).
    LS_MARC-MRP_TYPE = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'DISPO' ).
    LS_MARC-MRP_CTRLER = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'MTVFP' ).
    LS_MARC-AVAILCHECK = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'DZEIT' ).
    LS_MARC-INHSEPRODT = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'PLIFZ' ).
    LS_MARC-PLND_DELRY = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'FHORI' ).
    LS_MARC-SM_KEY = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'DISLS' ).
    LS_MARC-LOTSIZEKEY = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'MINBE' ).
    LS_MARC-REORDER_PT = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'BSTMI' ).
    LS_MARC-MINLOTSIZE = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'BSTMA' ).
    LS_MARC-MAXLOTSIZE = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'MABST' ).
    LS_MARC-MAX_STOCK = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'BSTFE' ).
    LS_MARC-FIXED_LOT = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'SBDKZ' ).
    LS_MARC-DEP_REQ_ID = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'VRMOD' ).
    LS_MARC-CONSUMMODE = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'VINT1' ).
    LS_MARC-BWD_CONS = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'VINT2' ).
    LS_MARC-FWD_CONS = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'KAUSF' ).
    LS_MARC-COMP_SCRAP = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'LGPRO' ).
    LS_MARC-ISS_ST_LOC = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'STRGR' ).
    LS_MARC-PLAN_STRGP = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'MISKZ' ).
    LS_MARC-MIXED_MRP = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'LGFSB' ).
    LS_MARC-SLOC_EXPRC = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'MHDRZ' ).
    LS_MARC-MINREMLIFE = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'MHDHB' ).
    LS_MARC-SHELF_LIFE = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'FEVOR' ).
    LS_MARC-PRODUCTION_SCHEDULER = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'SFCPF' ).
    LS_MARC-PRODPROF = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'EKGRP' ).
    LS_MARC-PUR_GROUP = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'BSTRF' ).
    LS_MARC-ROUND_VAL = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'XCHPF' ).
    LS_MARC-BATCH_MGMT = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'PRCTR' ).
    LS_MARC-PROFIT_CTR = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'LOSGR' ).
    LS_MARC-LOT_SIZE = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'LADGR' ).
    LS_MARC-LOADINGGRP = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'WEBAZ' ).
    LS_MARC-GR_PR_TIME = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'NCOST' ).
    LS_MARC-NO_COSTING = L_SAP_COL_OBJECT->VALUE.
*    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'AWSLS' ).
*    LS_MARC-VARIANCE_KEY = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'UEETK' ).
    LS_MARC-UNLIMITED = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'QMATA' ).
    LS_MARC-QM_AUTHGRP = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'SAUFT' ).
    LS_MARC-REP_MANUF = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'SFEPR' ).
    LS_MARC-REPMANPROF = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'RGEKZ' ).
    LS_MARC-BACKFLUSH = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'KORDB' ).
    LS_MARC-SOURCELIST = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'KZKRI' ).
    LS_MARC-CRIT_PART = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'KAUTB' ).
    LS_MARC-AUTO_P_ORD = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'FXHOR' ).
    LS_MARC-PL_TI_FNCE = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ZPCBS' ).
    LS_MARC-ZPCBS = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'XMCNG' ).
    LS_MARC-NEG_STOCKS = L_SAP_COL_OBJECT->VALUE.

    APPEND LS_MARC TO LT_MARC.
  ENDLOOP.
ENDFORM.


FORM GETMARM USING PURL TYPE STRING PMATNR TYPE MATNR CHANGING  LT_MARM TYPE STANDARD TABLE.
  DATA: LS_MARM TYPE ZMMS_IF_MATERIAL_MARM.
  DATA:SQLSTR TYPE STRING.
  DATA: L_JSON_ROOT_OBJECT TYPE REF TO ZCL_MDP_JSON_NODE.
  DATA: L_ERRORTYPE_OBJECT TYPE REF TO ZCL_MDP_JSON_NODE.
  DATA: LTAR TYPE TABLE OF ZCL_MDP_JSON_NODE=>TYP_ARRAY_CHILDREN.
  DATA: L_SAP_ROW_OBJECT TYPE REF TO ZCL_MDP_JSON_NODE.
  DATA: L_SAP_COL_OBJECT TYPE REF TO ZCL_MDP_JSON_NODE.
  DATA: LPPSTAT TYPE MARA-PSTAT.

  SQLSTR = 'SELECT MARM.* FROM MARM WHERE  MARM.MANDT = 800 AND MARM.MATNR = ''' && PMATNR && ''''.
  PERFORM FRM_SYNOBJ(ZABAP_COMMON_PROGRAM) USING PURL SQLSTR CHANGING L_JSON_ROOT_OBJECT.
  L_ERRORTYPE_OBJECT = L_JSON_ROOT_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'RESULT').
  LTAR  = L_ERRORTYPE_OBJECT->ARRAY_CHILDREN().
  LOOP AT LTAR INTO DATA(LSAR).
    CLEAR LS_MARM.
    L_SAP_ROW_OBJECT = LSAR-NODE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'MATNR' ).
    LS_MARM-ZMATERIAL = L_SAP_COL_OBJECT->VALUE.
    LS_MARM-MATERIAL = L_SAP_COL_OBJECT->VALUE.

    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'MEINH' ).
    LS_MARM-ALT_UNIT = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'UMREZ' ).
    LS_MARM-NUMERATOR = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'UMREN' ).
    LS_MARM-DENOMINATR = L_SAP_COL_OBJECT->VALUE.
    APPEND LS_MARM TO LT_MARM.
  ENDLOOP.
ENDFORM.

FORM GETMARA USING PURL TYPE STRING PMATNR TYPE MATNR CHANGING  LT_MARA TYPE STANDARD TABLE.
  DATA: LS_MARA TYPE ZMMS_IF_MATERIAL_MARA.
  DATA:SQLSTR TYPE STRING.
  DATA: L_JSON_ROOT_OBJECT TYPE REF TO ZCL_MDP_JSON_NODE.
  DATA: L_ERRORTYPE_OBJECT TYPE REF TO ZCL_MDP_JSON_NODE.
  DATA: LTAR TYPE TABLE OF ZCL_MDP_JSON_NODE=>TYP_ARRAY_CHILDREN.
  DATA: L_SAP_ROW_OBJECT TYPE REF TO ZCL_MDP_JSON_NODE.
  DATA: L_SAP_COL_OBJECT TYPE REF TO ZCL_MDP_JSON_NODE.
  DATA: LPPSTAT TYPE MARA-PSTAT.

  SQLSTR = 'SELECT MARA.*,MAKT.MAKTX FROM MARA JOIN MAKT ON MAKT.MATNR = MARA.MATNR AND MAKT.MANDT = MARA.MANDT AND MAKT.SPRAS = 1 WHERE  MARA.MANDT = 800 AND MARA.MATNR = ''' && PMATNR && ''''.
  PERFORM FRM_SYNOBJ(ZABAP_COMMON_PROGRAM) USING PURL SQLSTR CHANGING L_JSON_ROOT_OBJECT.
  L_ERRORTYPE_OBJECT = L_JSON_ROOT_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'RESULT').
  LTAR  = L_ERRORTYPE_OBJECT->ARRAY_CHILDREN().
  LOOP AT LTAR INTO DATA(LSAR).
    CLEAR LS_MARA.
    L_SAP_ROW_OBJECT = LSAR-NODE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'MATNR' ).
    LS_MARA-ZMATERIAL = L_SAP_COL_OBJECT->VALUE.
    LS_MARA-MATERIAL  = L_SAP_COL_OBJECT->VALUE.
    SELECT * FROM MARA WHERE MATNR = @LS_MARA-MATERIAL INTO TABLE @DATA(LTTMP).
    IF LTTMP[] IS INITIAL.
      LS_MARA-FUNCTION = 'INS'.
    ELSE.
      LS_MARA-FUNCTION = 'UPD'.
    ENDIF.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'MBRSH' ).
    LS_MARA-IND_SECTOR = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'MTART' ).
    LS_MARA-MATL_TYPE = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'MAKTX' ).
    LS_MARA-MATL_DESC = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'MATKL' ).
    LS_MARA-MATL_GROUP = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'MEINS' ).
    LS_MARA-BASE_UOM = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'SPART' ).
    LS_MARA-DIVISION = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'MTPOS_MARA' ).
    LS_MARA-ITEM_CAT = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'EXTWG' ).
    LS_MARA-EXTMATLGRP = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'WRKST' ).
    LS_MARA-BASIC_MATL = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'MAGRV' ).
    LS_MARA-MAT_GRP_SM = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'GEWEI' ).
    LS_MARA-UNIT_OF_WT = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'VOLEH' ).
    LS_MARA-VOLUMEUNIT = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'TRAGR' ).
    LS_MARA-TRANS_GRP = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'BISMT' ).
    LS_MARA-OLD_MAT_NO = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'PRDHA' ).
    LS_MARA-PROD_HIER = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'TEMPB' ).
    LS_MARA-TEMP_CONDS = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'MAKTX' ).
    LS_MARA-TEXT_LINE = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'LABOR' ).
    LS_MARA-DSN_OFFICE = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ZMAKTX' ).
    LS_MARA-ZMAKTX = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ZYXWLZ01' ).
    LS_MARA-ZYXWLZ01 = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ZYXWLZ02' ).
    LS_MARA-ZYXWLZ02 = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ZYXWLZ03' ).
    LS_MARA-ZYXWLZ03 = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ZYXWLZ04' ).
    LS_MARA-ZYXWLZ04 = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ZYXWLZ05' ).
    LS_MARA-ZYXWLZ05 = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ZYXWLZ06' ).
    LS_MARA-ZYXWLZ06 = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ZYXWLZ07' ).
    LS_MARA-ZYXWLZ07 = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ZYXWLZ08' ).
    LS_MARA-ZYXWLZ08 = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ZYXWLZ09' ).
    LS_MARA-ZYXWLZ09 = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ZYXWLZ10' ).
    LS_MARA-ZYXWLZ10 = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ZYXWLZ11' ).
    LS_MARA-ZYXWLZ11 = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ZYXWLZ12' ).
    LS_MARA-ZYXWLZ12 = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ZYXWLZ13' ).
    LS_MARA-ZYXWLZ13 = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ZYXWLZ14' ).
    LS_MARA-ZYXWLZ14 = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ZYXWLZ15' ).
    LS_MARA-ZYXWLZ15 = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ZYXWLZ16' ).
    LS_MARA-ZYXWLZ16 = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ZYXWLZ17' ).
    LS_MARA-ZYXWLZ17 = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ZYXWLZ18' ).
    LS_MARA-ZYXWLZ18 = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ZYXWLZ19' ).
    LS_MARA-ZYXWLZ19 = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ZYXWLZ20' ).
    LS_MARA-ZYXWLZ20 = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ZYXWLZ21' ).
    LS_MARA-ZYXWLZ21 = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ZYXWLZ22' ).
    LS_MARA-ZYXWLZ22 = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ZYXWLZ23' ).
    LS_MARA-ZYXWLZ23 = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ZYXWLZ24' ).
    LS_MARA-ZYXWLZ24 = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ZYXWLZ25' ).
    LS_MARA-ZYXWLZ25 = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ZYXWLZ26' ).
    LS_MARA-ZYXWLZ26 = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ZYXWLZ27' ).
    LS_MARA-ZYXWLZ27 = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ZYXWLZ28' ).
    LS_MARA-ZYXWLZ28 = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ZYXWLZ29' ).
    LS_MARA-ZYXWLZ29 = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ZYXWLZ30' ).
    LS_MARA-ZYXWLZ30 = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ZYXWLZ30' ).
    LS_MARA-ZYXWLZ30 = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ZJKZYJ' ).
    LS_MARA-ZJKZYJ = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ZYSJ' ).
    LS_MARA-ZYSJ = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ZCCWLFL' ).
    LS_MARA-ZCCWLFL = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'MSTAE' ).
    LS_MARA-PUR_STATUS = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'GROES' ).
    LS_MARA-SIZE_DIM = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'VOLUM' ).
    LS_MARA-VOLUME = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'NTGEW' ).
    LS_MARA-NET_WEIGHT = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'BRGEW' ).
    LS_MARA-ALLOWED_WT = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'MAXL' ).
    LS_MARA-MAX_ALLOWED_LENGTH = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'MAXB' ).
    LS_MARA-MAX_ALLOWED_WIDTH = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'MAXH' ).
    LS_MARA-MAX_ALLOWED_HEIGTH = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'MAXDIM_UOM' ).
    LS_MARA-MAX_DIMENSION_UN = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ZMABC' ).
    LS_MARA-ZMABC = L_SAP_COL_OBJECT->VALUE.
    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'ZMCLS' ).
    LS_MARA-ZMCLS = L_SAP_COL_OBJECT->VALUE.

    L_SAP_COL_OBJECT =  L_SAP_ROW_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'PSTAT' ).
    LPPSTAT = L_SAP_COL_OBJECT->VALUE.
    IF LPPSTAT CS 'K'.
      LS_MARA-BASIC_VIEW = 'X'.
    ENDIF.
    IF LPPSTAT CS 'V'.
      LS_MARA-SALES_VIEW = 'X'.
    ENDIF.
    IF LPPSTAT CS 'E'.
      LS_MARA-PURCHASE_VIEW = 'X'.
    ENDIF.
    IF LPPSTAT CS 'D'.
      LS_MARA-MRP_VIEW = 'X'.
    ENDIF.
    IF LPPSTAT CS 'A'.
      LS_MARA-WORK_SCHED_VIEW = 'X'.
    ENDIF.
    IF LPPSTAT CS 'L'.
      LS_MARA-STORAGE_VIEW = 'X'.
    ENDIF.
    IF LPPSTAT CS 'S'.
      LS_MARA-WAREHOUSE_VIEW = 'X'.
    ENDIF.
    IF LPPSTAT CS 'Q'.
      LS_MARA-QUALITY_VIEW = 'X'.
    ENDIF.
    IF LPPSTAT CS 'B'.
      LS_MARA-ACCOUNT_VIEW = 'X'.
    ENDIF.
    IF LPPSTAT CS 'G'.
      LS_MARA-COST_VIEW = 'X'.
    ENDIF.

    APPEND LS_MARA TO LT_MARA.
  ENDLOOP.
ENDFORM.

效果

实际物料

考虑数量问题,先同步10个物料

同步前

同步中

  • 8
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
数据可视化大屏 PRD 需求说明书是用于确定和描述数据可视化大屏产品的需求,以确保开发团队和业务团队在产品开发过程中能够达成一致的理解和期望。 本 PRD 需求说明书将包括以下要内容: 1. 产品描述:详细描述数据可视化大屏产品的功能和特点,例如数据源的类型和来源、可视化展示的方式、交互和导航方式等。 2. 用户需求:准确确定目标用户群体及他们的需求,考虑他们的行业背景、数据需求和使用场景,以便为他们提供定制化的解决方案。 3. 功能需求:列出数据可视化大屏产品的基本功能需求,例如图表展示、数据筛选与过滤、数据刷新频率等,以及其他增值功能的需求。 4. 界面设计:提供用户界面的设计方案,包括布局和样式,确保用户能够轻松理解和操作大屏界面。 5. 数据源与接口:确定数据源类型和接口需求,确保数据能够准确、及时地传输到大屏中,并保证数据的安全性和可靠性。 6. 数据可视化:描述数据在大屏上的可视化展现方式,包括图表种类、颜色选择、动画效果等,以增强数据的可理解性和可视化效果。 7. 交互与导航:定义用户对大屏上数据的交互方式,包括点击、滚动、拖拽等,以及导航和切换不同视图和数据的方式。 8. 性能与安全:要求产品在性能和安全方面达到一定的标准,确保能够应对大量数据的高并发访问,并保障数据的安全性和稳定性。 通过这份 PRD 需求说明书,开发团队和业务团队能够对数据可视化大屏产品的功能和特点有清晰的了解,并能够根据需求进行系统的开发和测试,实现产品的需求和期望。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gavin_gxh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值