groovy脚本中的多部分/混合消息处理

groovy脚本中的多部分/混合消息处理,groovy,Groovy,我在CPI中得到一个类似于下面的有效载荷 我的目标是将“PurchasingDocumentCategory”字段中的值替换为“PurchasingDocumentCategory”字段中的值,并从有效负载中删除“PurchasingDocumentCategory”字段及其值 这些字段在有效负载中多次出现在下面 修补程序A_PurchaseRequisitionItem(PurchaseRequisition='0011234',PurchaseRequisitionItem='2')HTTP

我在CPI中得到一个类似于下面的有效载荷

我的目标是将“PurchasingDocumentCategory”字段中的值替换为“PurchasingDocumentCategory”字段中的值,并从有效负载中删除“PurchasingDocumentCategory”字段及其值

这些字段在有效负载中多次出现在下面

修补程序A_PurchaseRequisitionItem(PurchaseRequisition='0011234',PurchaseRequisitionItem='2')HTTP/1.1

修补程序A_PurchaseRequisitionItem(PurchaseRequisition='0011234',PurchaseRequisitionItem='2')HTTP/1.1

如何在SAP CPI中实现这一点。关于格兰维剧本有什么提示吗

--batch
content-type: multipart/mixed; boundary=changeset
--changeset
content-type: application/http
content-transfer-encoding: binary
PATCH A_PurchaseRequisitionHeader(PurchaseRequisition='001234') HTTP/1.1
accept: application/json
content-type: application/json
{"PurchaseRequisition":"","PurchaseRequisitionType":"NB","PurReqnDescription":"CPI payloads","SourceDetermination":false}
--changeset
content-type: application/http
content-transfer-encoding: binary
PATCH A_PurchaseRequisitionItem(PurchaseRequisition='0011234',PurchaseRequisitionItem='1') HTTP/1.1
accept: application/json
content-type: application/json
{"PurchaseRequisition":"","PurReqnExternalReference":"6149","PurReqnItemExternalReference":"1","PurReqnExternalSystemType":"A","ExternalApprovalStatus":"A","AccountAssignmentCategory":"K","MaterialGroup":"A00906","PurchasingDocumentCategory":"B","RequestedQuantity":"1.0000000000"}
--changeset
content-type: application/http
content-transfer-encoding: binary
PATCH A_PurchaseRequisitionItem(PurchaseRequisition='0011234',PurchaseRequisitionItem='2') HTTP/1.1
accept: application/json
content-type: application/json
{"PurchaseRequisition":"","PurReqnExternalReference":"6149","PurReqnItemExternalReference":"2","PurReqnExternalSystemType":"A","ExternalApprovalStatus":"A","AccountAssignmentCategory":"K","MaterialGroup":"A00906","PurchasingDocumentCategory":"C","RequestedQuantity":"1.0000000000"}
--changeset
content-type: application/http
content-transfer-encoding: binary
PATCH A_PurchaseReqnItemText(PurchaseRequisition='0011234',PurchaseRequisitionItem='1',DocumentText='B01',TechnicalObjectType='EBAN',Language='EN') HTTP/1.1
accept: application/json
content-type: application/json
{"NoteDescription":"Test "}
--changeset
content-type: application/http
content-transfer-encoding: binary
PATCH A_PurchaseReqnItemText(PurchaseRequisition='001234',PurchaseRequisitionItem='2',DocumentText='B01',TechnicalObjectType='EBAN',Language='EN') HTTP/1.1
accept: application/json
content-type: application/json
{"NoteDescription":"Test "}
--changeset--
--batch--

我使用java.io.reader方法来阅读每一行消息。在循环中,使用replaceAll方法修改内容。在循环中,每一行都被添加到stringbuilder的一个变量中。此stringbuilder最终返回。

使用库解析。例如,apache commons fileupload:我对Groovy完全是新手,如果您不介意的话,您能给我提供一些示例代码吗?我刚刚搜索了SAP CPI文档,有一个标准的消息解码器可以处理“MIME Multipart”格式。也许你不需要自己解析消息:嗨,谢谢链接,我已经试过了。这个解码器实际上做的不多。当我使用时,这个函数的输出又是相同的MIME消息。我只想替换“PurchasingDocumentCategory”并删除“PurchasingDocumentCategory”字段。我不想对消息进行解码/编码。