需求

{"Success": true,"Message": null,"Result": [{"WorkOrderNo": "1000001360","ItemNo": "300000000020","ItemName": "H506-Y035*169.7/FZ10B/T6","WorkshopName": "西山挤型车间","ProcessInfos": [{"BatchNo": "","JyLot": "A250826DC10111003001","JyEquipment": "22","FurnaceNo": "DC101","ProcessName": "挤压、拉直、长料锯切","Qry": "10","MinDate": "2025-08-26 14:28","MaxDate": "2025-08-26 14:28"},{"BatchNo": "","JyLot": "A250826DC10111003001","JyEquipment": "1#","FurnaceNo": "","ProcessName": "时效","Qry": "10","MinDate": "2025-08-26 00:00","MaxDate": "2025-08-26 00:00"},{"BatchNo": "","JyLot": "A250826DC10111003001","JyEquipment": "","FurnaceNo": "","ProcessName": "成品锯切","Qry": "10","MinDate": "2025-08-26 14:51","MaxDate": "2025-08-26 14:51"},{"BatchNo": "2508290002","JyLot": "A250826DC10111003001","JyEquipment": "","FurnaceNo": "","ProcessName": "品检、包装","Qry": "10","MinDate": "2025-08-26 15:04","MaxDate": "2025-08-26 15:04"}],"TraceaIqcs": [{"BillNo": "QC2508260006","ShortRodFurnace": "DC101","BatchNo": "2508260001","CaberQry": "3","CaberUnit": "PCS","Result": "合格"}]}],"Context": {"Ticket": "2NkBhyzejjlQyNWTYA6k0ZzA8c5LKv81iq1V1zHEXoxKS6oOTP+/p+qI6Cwke02XiIMmrg67998=","InvOrgId": 1000}
}

代码-直接按照字段名去读取

FORM DESERIALIZE_JSON TABLES P_PRO_HEAD STRUCTURE ZRFS_001P_PRO_DETAIL STRUCTURE ZRFS_002P_LBLC STRUCTURE ZRFS_003USING P_JSON P_ZJYPC P_CHARGCHANGING LR_D TYPE REF TO DATA.FIELD-SYMBOLS: <FS_RESULT> TYPE ANY,<FS_PRO_HEAD_T> TYPE ANY,<FS_PRO_DETAIL_T> TYPE ANY,<FS_LBPC_T> TYPE ANY,<FS_COMP> TYPE ANY,<FS_DATA> TYPE ANY.FIELD-SYMBOLS: <FS_PRO_HEAD> TYPE ZRFS_001,<FS_PRO_DETAIL> TYPE ZRFS_002,<FS_LBPC> TYPE ZRFS_003.DATA: LS_PRO_HEAD TYPE ZRFS_001,LS_PRO_DETAIL TYPE ZRFS_002,LS_LBPC TYPE ZRFS_003./UI2/CL_JSON=>DESERIALIZE(EXPORTINGJSON = P_JSONPRETTY_NAME = /UI2/CL_JSON=>PRETTY_MODE-CAMEL_CASECHANGINGDATA = LR_D)."解析数据IF LR_D IS BOUND.ASSIGN LR_D->* TO <FS_RESULT>.ASSIGN COMPONENT 'RESULT' OF STRUCTURE <FS_RESULT> TO <FS_RESULT>.ASSIGN <FS_RESULT>->* TO <FS_DATA>.LOOP AT <FS_DATA> ASSIGNING FIELD-SYMBOL(<FS_T>). "1、循环工单列表APPEND INITIAL LINE TO P_PRO_HEAD ASSIGNING <FS_PRO_HEAD>.ASSIGN <FS_T>->* TO <FS_COMP>.ASSIGN COMPONENT 'WORK_ORDER_NO' OF STRUCTURE <FS_COMP> TO <FS_DATA>.ASSIGN <FS_DATA>->* TO <FS_PRO_HEAD_T>.<FS_PRO_HEAD>-AUFNR = <FS_PRO_HEAD_T>.ASSIGN COMPONENT 'ITEM_NO' OF STRUCTURE <FS_COMP> TO <FS_DATA>.ASSIGN <FS_DATA>->* TO <FS_PRO_HEAD_T>.<FS_PRO_HEAD>-MATNR = <FS_PRO_HEAD_T>.ASSIGN COMPONENT 'ITEM_NAME' OF STRUCTURE <FS_COMP> TO <FS_DATA>.ASSIGN <FS_DATA>->* TO <FS_PRO_HEAD_T>.<FS_PRO_HEAD>-MAKTX = <FS_PRO_HEAD_T>.ASSIGN COMPONENT 'WORKSHOP_NAME' OF STRUCTURE <FS_COMP> TO <FS_DATA>.ASSIGN <FS_DATA>->* TO <FS_PRO_HEAD_T>.<FS_PRO_HEAD>-TXT_FEVOR = <FS_PRO_HEAD_T>.<FS_PRO_HEAD>-ZJYPC = P_ZJYPC.<FS_PRO_HEAD>-CHARG = P_CHARG."解析工序详细列表ASSIGN COMPONENT 'PROCESS_INFOS' OF STRUCTURE <FS_COMP> TO <FS_DATA>.ASSIGN <FS_DATA>->* TO <FS_DATA>.LOOP AT <FS_DATA> ASSIGNING FIELD-SYMBOL(<FS_TDEATIL>).APPEND INITIAL LINE TO P_PRO_DETAIL ASSIGNING <FS_PRO_DETAIL>.ASSIGN <FS_TDEATIL>->* TO <FS_COMP>. "一个有引用组件的结构MOVE-CORRESPONDING <FS_PRO_HEAD> TO <FS_PRO_DETAIL>.ASSIGN COMPONENT 'BATCH_NO' OF STRUCTURE <FS_COMP> TO <FS_DATA>.ASSIGN <FS_DATA>->* TO <FS_PRO_DETAIL_T>.<FS_PRO_DETAIL>-BATCHNO = <FS_PRO_DETAIL_T>.ASSIGN COMPONENT 'JY_LOT' OF STRUCTURE <FS_COMP> TO <FS_DATA>.ASSIGN <FS_DATA>->* TO <FS_PRO_DETAIL_T>.<FS_PRO_DETAIL>-JYLOT = <FS_PRO_DETAIL_T>.ASSIGN COMPONENT 'JY_EQUIPMENT' OF STRUCTURE <FS_COMP> TO <FS_DATA>.ASSIGN <FS_DATA>->* TO <FS_PRO_DETAIL_T>.<FS_PRO_DETAIL>-JYEQUIPMENT = <FS_PRO_DETAIL_T>.ASSIGN COMPONENT 'FURNACE_NO' OF STRUCTURE <FS_COMP> TO <FS_DATA>.ASSIGN <FS_DATA>->* TO <FS_PRO_DETAIL_T>.<FS_PRO_DETAIL>-FURNACENO = <FS_PRO_DETAIL_T>.ASSIGN COMPONENT 'QRY' OF STRUCTURE <FS_COMP> TO <FS_DATA>.ASSIGN <FS_DATA>->* TO <FS_PRO_DETAIL_T>.<FS_PRO_DETAIL>-QRY = <FS_PRO_DETAIL_T>.ASSIGN COMPONENT 'MIN_DATE' OF STRUCTURE <FS_COMP> TO <FS_DATA>.ASSIGN <FS_DATA>->* TO <FS_PRO_DETAIL_T>.<FS_PRO_DETAIL>-MINDATE = <FS_PRO_DETAIL_T>.ASSIGN COMPONENT 'MAX_DATE' OF STRUCTURE <FS_COMP> TO <FS_DATA>.ASSIGN <FS_DATA>->* TO <FS_PRO_DETAIL_T>.<FS_PRO_DETAIL>-MAXDATE = <FS_PRO_DETAIL_T>.ENDLOOP."解析铝板炉次ASSIGN <FS_T>->* TO <FS_COMP>.ASSIGN COMPONENT 'TRACEA_IQCS' OF STRUCTURE <FS_COMP> TO <FS_DATA>.ASSIGN <FS_DATA>->* TO <FS_DATA>.LOOP AT <FS_DATA> ASSIGNING FIELD-SYMBOL(<FS_TLBLC>).APPEND INITIAL LINE TO P_LBLC ASSIGNING <FS_LBPC>.ASSIGN <FS_TLBLC>->* TO <FS_COMP>. "一个有引用组件的结构MOVE-CORRESPONDING <FS_PRO_HEAD> TO <FS_LBPC>.ASSIGN COMPONENT 'BILL_NO' OF STRUCTURE <FS_COMP> TO <FS_DATA>.ASSIGN <FS_DATA>->* TO <FS_LBPC_T>.<FS_LBPC>-BILLNO = <FS_LBPC_T>.ASSIGN COMPONENT 'SHORT_ROD_FURNACE' OF STRUCTURE <FS_COMP> TO <FS_DATA>.ASSIGN <FS_DATA>->* TO <FS_LBPC_T>.<FS_LBPC>-SHORTRODFURNACE = <FS_LBPC_T>.ASSIGN COMPONENT 'BATCH_NO' OF STRUCTURE <FS_COMP> TO <FS_DATA>.ASSIGN <FS_DATA>->* TO <FS_LBPC_T>.<FS_LBPC>-BATCHNO = <FS_LBPC_T>.ASSIGN COMPONENT 'CABER_QRY' OF STRUCTURE <FS_COMP> TO <FS_DATA>.ASSIGN <FS_DATA>->* TO <FS_LBPC_T>.<FS_LBPC>-CABERQRY = <FS_LBPC_T>.ASSIGN COMPONENT 'CABER_UNIT' OF STRUCTURE <FS_COMP> TO <FS_DATA>.ASSIGN <FS_DATA>->* TO <FS_LBPC_T>.<FS_LBPC>-CABERUNIT = <FS_LBPC_T>.ASSIGN COMPONENT 'RESULT' OF STRUCTURE <FS_COMP> TO <FS_DATA>.ASSIGN <FS_DATA>->* TO <FS_LBPC_T>.<FS_LBPC>-RESULT = <FS_LBPC_T>.ENDLOOP.ENDLOOP.ENDIF.ENDFORM.
效果

表类型与结构

第一个表

第二个表

第三个表
