Создание родительского объекта вместе с его субъектом с использованием S / 4 Hana Cloud SDK и Cloud SDK - PullRequest
0 голосов
/ 14 марта 2019

Как создать родительский объект вместе с его подразделом, используя S / 4 Hana Cloud SDK и Cloud SDK Что я должен сделать, чтобы устранить ошибку ниже?

“errordetails”: [

{
“code”: “API_PRD_MSG/004”,
“message”: “Provide atleast one description for the product.”,
“propertyref”: “”,
“severity”: “error”,
“target”: “”
}
]

Как я могу изменить свой код?

Обновление

Этот глубокий блог создания [https://blogs.sap.com/2017/12/07/step-20-with-s4hana-cloud-sdk-create-and-deep-insert-with-the-virtual-data-model-for-odata/][1] является достигнуто с помощью сервлетов (где для получения параметров используется класс HttpRequestServlet), но я использую аннотацию @Create Cloud SDK и класс CreateRequest для получения полезной нагрузки.

Я могу получить данные родительской сущности в объекте toParent Product toParent = new ModelMapper (). Map (req.getMapData (), Product.class); Как получить данные субъекта (здесь ProductDescription), которые передаются в полезной нагрузке для глубокой вставки данных как родительского, так и дочернего объекта?

Полезная нагрузка, которую я передаю почтальону:

{
  "Product" : "BALL",
    "ProductType" : "ZHLB",
    "CrossPlantStatus" : "",
    "CrossPlantStatusValidityDate" : null,
    "CreationDate" : "\/Date(1499731200000)\/",
    "CreatedByUser" : "11279380",
    "LastChangeDate" : "\/Date(1550448000000)\/",
    "LastChangedByUser" : "HWV87616",
    "IsMarkedForDeletion" : false,
    "ProductOldID" : "",
    "GrossWeight" : "0.000",
    "PurchaseOrderQuantityUnit" : "",
    "SourceOfSupply" : "",
    "WeightUnit" : "KG",
    "NetWeight" : "0.000",
    "CountryOfOrigin" : "",
    "CompetitorID" : "",
    "ProductGroup" : "01",
    "BaseUnit" : "EA",
    "ItemCategoryGroup" : "",
    "ProductHierarchy" : "",
    "Division" : "",
    "VarblPurOrdUnitIsActive" : "",
    "VolumeUnit" : "",
    "MaterialVolume" : "0.000",
    "ANPCode" : "0",
    "Brand" : "",
    "ProcurementRule" : "",
    "ValidityStartDate" : null,
    "LowLevelCode" : "",
    "ProdNoInGenProdInPrepackProd" : "",
    "SerialIdentifierAssgmtProfile" : "",
    "SizeOrDimensionText" : "",
    "IndustryStandardName" : "",
    "ProductStandardID" : "",
    "InternationalArticleNumberCat" : "",
    "ProductIsConfigurable" : false,
    "IsBatchManagementRequired" : false,
    "ExternalProductGroup" : "",
    "CrossPlantConfigurableProduct" : "",
    "SerialNoExplicitnessLevel" : "",   
    "ManufacturerPartProfile" : "",
    "ChangeNumber" : "",
    "MaterialRevisionLevel" : "",
    "HandlingIndicator" : "",
    "WarehouseProductGroup" : "",
    "WarehouseStorageCondition" : "",
    "StandardHandlingUnitType" : "",
    "SerialNumberProfile" : "",
    "AdjustmentProfile" : "",
    "PreferredUnitOfMeasure" : "",
    "IsPilferable" : false,
    "IsRelevantForHzdsSubstances" : false,
    "QuarantinePeriod" : "0",
    "TimeUnitForQuarantinePeriod" : "",
    "QualityInspectionGroup" : "",
    "AuthorizationGroup" : "",
    "HandlingUnitType" : "",
    "HasVariableTareWeight" : false,
    "MaximumPackagingLength" : "0.000",
    "MaximumPackagingWidth" : "0.000",
    "MaximumPackagingHeight" : "0.000",
  "to_Description": {
    "results": [
     {
        "Product" : "BALL",
        "Language" : "EN",
        "ProductDescription" : "Pipes for machines"
      }
    ]
  }
}

Создать код, который используется

@Create(serviceName = "ProductService",Entity="Products")
    public CreateResponse create(CreateRequest req) throws ODataException {
    Product toCreate = new ModelMapper().map(req.getMapData(), Product.class);
    Product created = new DefaultProductMasterService().createProduct(toCreate)
                    .execute(new ErpConfigContext("K4XS4SDKDest"));
                new DefaultProductMasterService().createProductDescription(toCreateDescription).asChildOf(toCreate, Product.TO_DESCRIPTION);
            return CreateResponse.setSuccess().setData(created).response();
...