Serviceの読み取り操作と更新操作を完了しましたAPI_PRODUCT_SRV
。
API_PRODUCT_SRV
(多くの関連付けを持つ製品エンティティ)で深い挿入を行っているときに、次のエラーが発生します。
“errordetails”: [
{
“code”: “API_PRD_MSG/004”,
“message”: “Provide atleast one description for the product.”,
“propertyref”: “”,
“severity”: “error”,
“target”: “”
}
]
このディープダイブブログを見つけました
これは、残りのサービスを提供するサーブレットを使用して(つまり、HttpServletReqを使用して)深い挿入を説明しています。
しかし、私はCreateRequest
odata サービスを生成する SAP Cloud Application Programming Model のクラスを使用しているため、ブログで紹介されている同様のコードを使用できません。
閲覧用にコードとペイロードを追加しました。
オペレーション コードの作成
@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"));
return CreateResponse.setSuccess().setData(created).response();
}
使用中のペイロード:
{
"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"
}
]
}
}
CreateRequest
SAP Cloud アプリケーション プログラミング モデル (クラス)を使用しているときに、SAP S/4HANA Cloud SDK でディープ インサートが機能するようにコードを変更する方法を教えてください。
ログファイル:
Product(super=VdmObject(customFields={}, changedOriginalFields={LowLevelCode=null, ProductGroup=null, SizeOrDimensionText=null, CreatedByUser=null, CountryOfOrigin=null, Product=null, ProductStandardID=null, IsPilferable=null, VolumeUnit=null, WarehouseProductGroup=null, WarehouseStorageCondition=null, MaterialVolume=null, ManufacturerPartProfile=null, CrossPlantStatus=null, TimeUnitForQuarantinePeriod=null, GrossWeight=null, InternationalArticleNumberCat=null, SourceOfSupply=null, ProductType=null, ItemCategoryGroup=null, ProcurementRule=null, BaseUnit=null, ProductOldID=null, VarblPurOrdUnitIsActive=null, LastChangedByUser=null, Brand=null, MaximumPackagingWidth=null, QuarantinePeriod=null, PurchaseOrderQuantityUnit=null, ProductHierarchy=null, AuthorizationGroup=null, StandardHandlingUnitType=null, MaterialRevisionLevel=null, ExternalProductGroup=null, CrossPlantConfigurableProduct=null, MaximumPackagingLength=null, HasVariableTareWeight=null, ANPCode=null, ProdNoInGenProdInPrepackProd=null, WeightUnit=null, IsMarkedForDeletion=null, CompetitorID=null, QualityInspectionGroup=null, IsBatchManagementRequired=null, IsRelevantForHzdsSubstances=null, Division=null, SerialIdentifierAssgmtProfile=null, AdjustmentProfile=null, PreferredUnitOfMeasure=null, SerialNoExplicitnessLevel=null, HandlingIndicator=null, HandlingUnitType=null, NetWeight=null, ProductIsConfigurable=null, IndustryStandardName=null, SerialNumberProfile=null, ChangeNumber=null, MaximumPackagingHeight=null}), product=BELL, productType=ZHLB, crossPlantStatus=, crossPlantStatusValidityDate=null, creationDate=null, createdByUser=11279380, lastChangeDate=null, lastChangedByUser=HWV87616, lastChangeDateTime=null, 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=, productManufacturerNumber=null, manufacturerNumber=null, 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, erpConfigContext=null, toDescription=null, toPlant=null, toProductBasicText=null, toProductInspectionText=null, toProductProcurement=null, toProductPurchaseText=null, toProductQualityMgmt=null, toProductSales=null, toProductSalesTax=null, toProductStorage=null, toProductUnitsOfMeasure=null, toSalesDelivery=null)
{ "written_at":"2019-03-11T03:56:27.923Z","written_ts":918343802814688,"component_id":"e8c99eff-1a4e-4266-ba2a-fc099399100c","component_name":"FNpy7mXtvln0dnT1-FinalTestApp-srv","DCComponent":"","organization_name":"-","component_type":"application","space_name":"dev","component_instance":"0","organization_id":"-","correlation_id":"-","CSNComponent":"","space_id":"a78252bf-72bf-479c-b761-8260de0c776e","Application":"FNpy7mXtvln0dnT1-FinalTestApp-srv","container_id":"10.0.138.113","type":"log","logger":"com.sap.cloud.sdk.service.prov.api.util.ProcessorHelper","thread":"http-nio-0.0.0.0-3000-exec-7","level":"ERROR","categories":[],"msg":"The endpoint responded with HTTP error code 400.\nProvide atleast one description for the product.\nFull error message: \n{\n \"error\": {\n \"code\": \"API_PRD_MSG/004\",\n \"message\": {\n \"lang\": \"en\",\n \"value\": \"Provide atleast one description for the product.\"\n },\n \"innererror\": {\n \"application\": {\n \"component_id\": \"LO-MD-MM\",\n \"service_namespace\": \"/SAP/\",\n \"service_id\": \"API_PRODUCT_SRV\",\n \"service_version\": \"0001\"\n },\n \"transactionid\": \"C16DD240C7520010E005C7E648BC12F5\",\n \"timestamp\": \"20190311035627.5989630\",\n \"Error_Resolution\": {\n \"SAP_Transaction\": \"For backend administrators: run transaction /IWFND/ERROR_LOG on SAP Gateway hub system and search for entries with the timestamp above for more details\",\n \"SAP_Note\": \"See SAP Note 1797736 for error analysis (https://service.sap.com/sap/support/notes/1797736)\"\n },\n \"errordetails\": [\n {\n \"code\": \"API_PRD_MSG/004\",\n \"message\": \"Provide atleast one description for the product.\",\n \"propertyref\": \"\",\n \"severity\": \"error\",\n \"target\": \"\"\n }\n ]\n }\n }\n}","stacktrace":["java.lang.reflect.InvocationTargetException","\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)","\tat
my-service.cds
using API_PRODUCT_SRV from '../srv/external/csn/API_PRODUCT_SRV.json';
service ProductService {
entity Products as Projection on API_PRODUCT_SRV.A_ProductType {
key Product,
ProductType,
CreationDate,
CrossPlantStatus,
CrossPlantStatusValidityDate,
CreatedByUser,
LastChangeDate,
LastChangedByUser,
IsMarkedForDeletion,
ProductOldID,
GrossWeight,
PurchaseOrderQuantityUnit,
SourceOfSupply,
WeightUnit,
NetWeight,
CountryOfOrigin,
CompetitorID,
ProductGroup,
BaseUnit,
ItemCategoryGroup,
ProductHierarchy,
Division,
VarblPurOrdUnitIsActive,
VolumeUnit,
MaterialVolume,
ANPCode,
Brand,
ProcurementRule,
ValidityStartDate,
LowLevelCode,
ProdNoInGenProdInPrepackProd,
SerialIdentifierAssgmtProfile,
SizeOrDimensionText,
IndustryStandardName,
ProductStandardID,
InternationalArticleNumberCat,
ProductIsConfigurable,
IsBatchManagementRequired,
ExternalProductGroup,
CrossPlantConfigurableProduct,
SerialNoExplicitnessLevel,
ProductManufacturerNumber,
ManufacturerPartProfile,
ChangeNumber,
MaterialRevisionLevel,
HandlingIndicator,
WarehouseProductGroup,
WarehouseStorageCondition,
StandardHandlingUnitType,
SerialNumberProfile,
AdjustmentProfile,
PreferredUnitOfMeasure,
IsPilferable,
IsRelevantForHzdsSubstances,
QuarantinePeriod,
TimeUnitForQuarantinePeriod,
QualityInspectionGroup,
AuthorizationGroup,
HandlingUnitType,
HasVariableTareWeight,
MaximumPackagingLength,
MaximumPackagingWidth,
MaximumPackagingHeight,
to_Description
}
entity A_ProductDescriptionType as Projection on API_PRODUCT_SRV.A_ProductDescriptionType
{
key Product,
key Language,
ProductDescription
}
}
関連付けを追加する方法を教えてください。 my-service.cds
using API_BUSINESS_PARTNER as bp from './external/csn/API_BUSINESS_PARTNER';
service CrudService{
@cds.persistence.skip
Entity BusinessPartner as projection on bp.A_BusinessPartnerType{
BusinessPartner,
LastName,
FirstName,
BusinessPartnerCategory
};
}
敬具、
ミーナクシ