【问题标题】:Rearrange values in JOLT在 JOLT 中重新排列值
【发布时间】:2022-11-26 22:16:29
【问题描述】:

我想知道如何在 JOLT 中重新排列值。我想要 poType 之前的 poDesciption 字段。

我尝试了以下但没有奏效。-

"poDescription": "&5.&4.&3.&2.&1.&",
"poType": "&5.&4.&3.&2.&1.&",

关于我需要进行哪些更改才能在 poType 和 grossTotalAmount 之前获得 poDesciption 的任何想法?

我想要的命令-

命令我得到-

以下是输入数据-

{
  "PURCHASE_ORDER_DISPATCH": {
    "MsgData": {
      "Transaction": {
        "PO_POD_HDR_EVW1": {
          "WG_ADDR_SEQ_NUM": 1,
          "WG_PO_CNTCT_EMAIL": "PeggyMeincke@westfieldgrp.com",
          "WG_REQUESTOR_EMAIL": "ZacharyEngels@westfieldgrp.com",
          "WG_REQ_FIRST_NAME": "Zachary",
          "WG_REQ_LAST_NAME": "Engels",
          "WG_DELIVER_TO": "ZacharyEngels@westfieldgrp.com",
          "BUSINESS_UNIT": "OFIC",
          "PO_ID": 25052,
          "VENDOR_SETID": "WCOS",
          "VENDOR_ID": 35958,
          "VNDR_LOC": 1,
          "PO_DT": "2020-01-24",
          "DB_NUMBER_BU": "",
          "DESCR_BU": "OhioFarmersInsuranceCo",
          "ADDRESS1_BU": "WESTFIELDCOMPANIES",
          "ADDRESS2_BU": "HOMEOFFICE",
          "ADDRESS3_BU": "1PARKCIRCLE",
          "ADDRESS4_BU": "",
          "CITY_BU": "WESTFIELDCENTER",
          "STATE_BU": "OH",
          "POSTAL_BU": "44251-5001",
          "COUNTRY_BU": "USA",
          "ADDRESS1_BILL": "",
          "ADDRESS2_BILL": "",
          "ADDRESS3_BILL": "",
          "ADDRESS4_BILL": "",
          "CITY_BILL": "",
          "STATE_BILL": "",
          "POSTAL_BILL": "",
          "COUNTRY_BILL": "",
          "CURRENCY_CD": "USD",
          "TAX_EXEMPT_ID": "",
          "STD_ID_NUM_VNDR": "",
          "NAME1_VNDR": "AMAZONCAPITALSERVICESINC",
          "ADDRESS1_VNDR": "410TERRYAVEN",
          "ADDRESS2_VNDR": "",
          "ADDRESS3_VNDR": "",
          "ADDRESS4_VNDR": "",
          "CITY_VNDR": "SEATTLE",
          "STATE_VNDR": "WA",
          "POSTAL_VNDR": 98109,
          "COUNTRY_VNDR": "USA",
          "PYMNT_TERMS_CD": "NET30",
          "DESCR50_PAY": "Net30",
          "BUYER_ID": 1083,
          "PO_AMT_TTL": 14.99,
          "TEXT254_CC1": "",
          "TEXT254_CC2": "",
          "VNDR_UPN_FLG": "N",
          "STD_ID_NUM_VNDRGLN": "",
          "STD_ID_NUM_BILLTO": "",
          "ATTN_TO": "ZacharyEngels",
          "PO_POD_LN_EVW1": {
            "WG_REQ_ID": 25694,
            "WG_CATEGORY_CD": "FSSUP",
            "WG_ITEM_TYPE": 0,
            "WG_ACCOUNT": 641100,
            "WG_DEPT_ID": 30400,
            "WG_PRODUCT": "",
            "BUSINESS_UNIT": "OFIC",
            "PO_ID": 25052,
            "WG_ASSET_GROUP": "",
            "WG_CAPITALIZE": "NO",
            "WG_PROFILE_ID": "",
            "WG_SPLIT_TYPE": 1,
            "WG_ASSET_LOC": "HOME",
            "WG_PROJECT": "",
            "VENDOR_SETID": "WCOS",
            "VENDOR_ID": 35958,
            "VNDR_LOC": 1,
            "LINE_NBR": 1,
            "INV_ITEM_ID": "",
            "DESCR254_MIXED": "147-1518156-3620845,1GreenMountainCoffeeRoastersCaramelVanillaCreamKeurigSingle-ServeK-CupPods,LightRoastCoffee,32Count",
            "UNIT_OF_MEASURE": "EA",
            "ITM_ID_VNDR": "B0798CX2Q9",
            "INV_ITEM_WEIGHT": 0,
            "INV_ITEM_HEIGHT": 0,
            "INV_ITEM_VOLUME": 0,
            "INV_ITEM_LENGTH": 0,
            "INV_ITEM_WIDTH": 0,
            "VNDR_CATALOG_ID": "",
            "MFG_ID": "",
            "MFG_ITM_ID": 5000196305,
            "CNTRCT_ID": "",
            "VERSION_NBR": 0,
            "CNTRCT_LINE_NBR": 0,
            "CAT_LINE_NBR": 0,
            "RELEASE_NBR": 0,
            "CANCEL_STATUS": "A",
            "UPN_ID": "",
            "PO_POD_SHP_EVW1": {
              "WG_SHIP_ADDR_TYPE": 0,
              "WG_CUST_ADDR_CODE": "OFIC",
              "BUSINESS_UNIT": "OFIC",
              "PO_ID": 25052,
              "VENDOR_SETID": "WCOS",
              "VENDOR_ID": 35958,
              "VNDR_LOC": 1,
              "LINE_NBR": 1,
              "SCHED_NBR": 1,
              "DUE_DT": "2020-01-29",
              "SHIPTO_ID": "OFIC",
              "DESCR_SHIPTO": "OHIOFARMERSINSURANCECOMPANY",
              "ADDRESS1_SHIPTO": "OHIOFARMERSINSURANCECOMPANY",
              "ADDRESS2_SHIPTO": "1PARKCIRCLE",
              "ADDRESS3_SHIPTO": "POBOX5001",
              "ADDRESS4_SHIPTO": "",
              "CITY_SHIPTO": "WESTFIELDCENTER",
              "STATE_SHIPTO": "OH",
              "POSTAL_SHIPTO": "44251-5001",
              "COUNTRY_SHIPTO": "USA",
              "PRICE_PO": 14.99,
              "FREIGHT_TERMS": "FOBDEST",
              "QTY_PO": 1,
              "SHIP_TYPE_ID": "BEST_WAY",
              "CANCEL_STATUS": "A",
              "ATTN_TO": "",
              "STD_ID_NUM_SHIPTO": ""
            },
            "PSCAMA": {
              "AUDIT_ACTN": "A"
            }
          },
          "PSCAMA": {
            "AUDIT_ACTN": "A"
          }
        },
        "PSCAMA": {
          "LANGUAGE_CD": "ENG",
          "AUDIT_ACTN": "A",
          "BASE_LANGUAGE_CD": "ENG",
          "MSG_SEQ_FLG": "",
          "PROCESS_INSTANCE": 1199010,
          "PUBLISH_RULE_ID": "WG_MAIN_RULE",
          "MSGNODENAME": ""
        }
      }
    }
  }
}

以下是 JOLT 规格 -

[
  {
    "operation": "shift",
    "spec": {
      "#UPSERT": "integration-inbound:IntegrationDetails.integrationEntities.integrationEntity.integrationEntityHeader.action",
      "*": {
        "*": {
          "*": {
            "*": {
              "PO_ID": "integration-inbound:IntegrationDetails.integrationEntities.integrationEntity.integrationEntityDetails.poDetails.externalId",
              "#APPROVED": "integration-inbound:IntegrationDetails.integrationEntities.integrationEntity.integrationEntityDetails.poDetails.status",
              "PO_AMT_TTL": "integration-inbound:IntegrationDetails.integrationEntities.integrationEntity.integrationEntityDetails.poDetails.poHeader.grossTotalAmount",
              "FREIGHT_TERMS": "integration-inbound:IntegrationDetails.integrationEntities.integrationEntity.integrationEntityDetails.poDetails.poHeader.deliveryTermCode",
              "WG_REQUESTOR_EMAIL": "integration-inbound:IntegrationDetails.integrationEntities.integrationEntity.integrationEntityDetails.poDetails.items.item.requesterDetails.userEmailId",
              "*": {
                "WG_REQ_ID": "integration-inbound:IntegrationDetails.integrationEntities.integrationEntity.integrationEntityDetails.poDetails.poHeader.poDescription",
                "#STANDARD": "integration-inbound:IntegrationDetails.integrationEntities.integrationEntity.integrationEntityDetails.poDetails.poHeader.poType",
                "*": {
                  "FREIGHT_TERMS": "integration-inbound:IntegrationDetails.integrationEntities.integrationEntity.integrationEntityDetails.poDetails.poHeader.deliveryTermCode"
                }
              }
            }
          }
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "*": {
        "*": {
          "*": {
            "integrationEntityHeader": "&3.&2.&1.&",
            "integrationEntityDetails": {
              "*": {
                "externalId": "&5.&4.&3.&2.&1.&",
                "status": "&5.&4.&3.&2.&1.&",
                "poHeader": "&5.&4.&3.&2.&1.&",
                "poDescription": "&5.&4.&3.&2.&1.&",
                "poType": "&5.&4.&3.&2.&1.&",
                "items": "&5.&4.&3.&2.&1.&"
              }
            }
          }
        }
      }
    }
  },
  {
    "operation": "cardinality",
    "spec": {
      "*": {
        "*": {
          "*": {
            "*": {
              "*": {
                "status": "ONE",
                "poHeader": {
                  "*": "ONE"
                }
              }
            }
          }
        }
      }
    }
  }
]

【问题讨论】:

    标签: json mapping transformation jolt


    【解决方案1】:

    您可以使用此规范:

    [
      {
        "operation": "shift",
        "spec": {
          "#UPSERT": "integration-inbound:IntegrationDetails.integrationEntities.integrationEntity.integrationEntityHeader.action",
          "*": {
            "*": {
              "*": {
                "*": {
                  "PO_ID": "integration-inbound:IntegrationDetails.integrationEntities.integrationEntity.integrationEntityDetails.poDetails.externalId",
                  "#APPROVED": "integration-inbound:IntegrationDetails.integrationEntities.integrationEntity.integrationEntityDetails.poDetails.status",
                  "PO_AMT_TTL": "integration-inbound:IntegrationDetails.integrationEntities.integrationEntity.integrationEntityDetails.poDetails.poHeader.grossTotalAmount",
                  "FREIGHT_TERMS": "integration-inbound:IntegrationDetails.integrationEntities.integrationEntity.integrationEntityDetails.poDetails.poHeader.deliveryTermCode",
                  "WG_REQUESTOR_EMAIL": "integration-inbound:IntegrationDetails.integrationEntities.integrationEntity.integrationEntityDetails.poDetails.items.item.requesterDetails.userEmailId",
                  "*": {
                    "WG_REQ_ID": "integration-inbound:IntegrationDetails.integrationEntities.integrationEntity.integrationEntityDetails.poDetails.poHeader.poDescription",
                    "#STANDARD": "integration-inbound:IntegrationDetails.integrationEntities.integrationEntity.integrationEntityDetails.poDetails.poHeader.poType",
                    "*": {
                      "FREIGHT_TERMS": "integration-inbound:IntegrationDetails.integrationEntities.integrationEntity.integrationEntityDetails.poDetails.poHeader.deliveryTermCode"
                    }
                  }
                }
              }
            }
          }
        }
      },
      {
        "operation": "shift",
        "spec": {
          "*": {
            "*": {
              "*": {
                "integrationEntityHeader": "&3.&2.&1.&",
                "integrationEntityDetails": {
                  "*": {
                    "externalId": "&5.&4.&3.&2.&1.&",
                    "status": "&5.&4.&3.&2.&1.&",
                    "poHeader": {
                      "poDescription": "&6.&5.&4.&3.&2.&1.&",
                      "poType": "&6.&5.&4.&3.&2.&1.&",
                      "grossTotalAmount": "&6.&5.&4.&3.&2.&1.&",
                      "deliveryTermCode": "&6.&5.&4.&3.&2.&1.&"
                    },
                    "items": "&5.&4.&3.&2.&1.&"
                  }
                }
              }
            }
          }
        }
      },
      {
        "operation": "cardinality",
        "spec": {
          "*": {
            "*": {
              "*": {
                "*": {
                  "*": {
                    "status": "ONE",
                    "poHeader": {
                      "*": "ONE"
                    }
                  }
                }
              }
            }
          }
        }
      }
    ]
    

    【讨论】:

      【解决方案2】:

      事实上你不需要基数规格,只需在第二个内订购转移通过使用规范0第 index 如下

      [
        {
          "operation": "shift",
          "spec": {
            "#UPSERT": "integration-inbound:IntegrationDetails.integrationEntities.integrationEntity.integrationEntityHeader.action",
            "*": {
              "*": {
                "*": {
                  "*": {
                    "PO_ID": "integration-inbound:IntegrationDetails.integrationEntities.integrationEntity.integrationEntityDetails.poDetails.externalId",
                    "#APPROVED": "integration-inbound:IntegrationDetails.integrationEntities.integrationEntity.integrationEntityDetails.poDetails.status",
                    "PO_AMT_TTL": "integration-inbound:IntegrationDetails.integrationEntities.integrationEntity.integrationEntityDetails.poDetails.poHeader.grossTotalAmount",
                    "FREIGHT_TERMS": "integration-inbound:IntegrationDetails.integrationEntities.integrationEntity.integrationEntityDetails.poDetails.poHeader.deliveryTermCode",
                    "WG_REQUESTOR_EMAIL": "integration-inbound:IntegrationDetails.integrationEntities.integrationEntity.integrationEntityDetails.poDetails.items.item.requesterDetails.userEmailId",
                    "*": {
                      "WG_REQ_ID": "integration-inbound:IntegrationDetails.integrationEntities.integrationEntity.integrationEntityDetails.poDetails.poHeader.poDescription",
                      "#STANDARD": "integration-inbound:IntegrationDetails.integrationEntities.integrationEntity.integrationEntityDetails.poDetails.poHeader.poType",
                      "*": {
                        "FREIGHT_TERMS": "integration-inbound:IntegrationDetails.integrationEntities.integrationEntity.integrationEntityDetails.poDetails.poHeader.deliveryTermCode"
                      }
                    }
                  }
                }
              }
            }
          }
          },
        {
          "operation": "shift",
          "spec": {
            "*": {
              "*": {
                "*": {
                  "integrationEntityHeader": "&3.&2.&1.&",
                  "integrationEntityDetails": {
                    "*": {
                      "externalId": "&5.&4.&3.&2.&1.&",
                      "status": {
                        "0": "&6.&5.&4.&3.&2.&1"
                      },
                      //"status": "&5.&4.&3.&2.&1.&",
                      "poHeader": {
                        "poDescription": "&6.&5.&4.&3.&2.&1.&",
                        "poType": {
                          "0": "&7.&6.&5.&4.&3.&2.&1"
                        },
                        "grossTotalAmount": "&6.&5.&4.&3.&2.&1.&",
                        "deliveryTermCode": "&6.&5.&4.&3.&2.&1.&"
                      },
                      // "poDescription": "&5.&4.&3.&2.&1.&",
                      // "poType": "&5.&4.&3.&2.&1.&",
                      "items": "&5.&4.&3.&2.&1.&"
                    }
                  }
                }
              }
            }
          }
        }
      ]
      

      顺便说一句,添加poDescriptionpoType属性连同poHeader对象没有意义,因为那些已经包含在该对象中。

      【讨论】:

        猜你喜欢
        • 2022-12-12
        • 1970-01-01
        • 2020-02-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-25
        • 1970-01-01
        • 2021-12-24
        相关资源
        最近更新 更多