如何在Java中使用SDK更新计划独立需求

如何在Java中使用SDK更新计划独立需求,java,sap-cloud-platform,sap-cloud-sdk,Java,Sap Cloud Platform,Sap Cloud Sdk,我想在SAP S/4Hana云中更新PIRs(计划独立需求)。我正在使用JavaSDK。 我正在使用DefaultExtendedPlannedIndependentRequirementService类 PlannedIndepRqmtItem pirItem = null; try { pirItem.setPlannedQuantity(utilities.convertToBigDecimal(anaplanLine.getFo

我想在SAP S/4Hana云中更新PIRs(计划独立需求)。我正在使用JavaSDK。 我正在使用DefaultExtendedPlannedIndependentRequirementService类

        PlannedIndepRqmtItem pirItem = null;

        try {

            pirItem.setPlannedQuantity(utilities.convertToBigDecimal(anaplanLine.getForecastQuantity()));

            new DefaultExtendedPlannedIndependentRequirementService()
                    .updatePlannedIndepRqmtItem(pirItem)
                    .execute();

我使用PlannedIndeprqmitem填充要更新的字段,如上所示

我的问题是如何设置条件字段(where字段)

where子句的字段包括:产品、工厂、MRP区域、PIR类型、PIR版本、PIR周期和周期类型

比尔, Pietro不允许在更新请求中使用“where子句”

要更新项目,首先必须请求特定项目(GET request),修改它,然后将其传递给服务类的专用
update
方法

如果您想同时更新多个项目,您可以通过
DefaultExtendedPlannedIndependentRequirementServiceBatch
执行批处理请求。但是,这也需要显式地传递所有要更新的对象,因为其中有“where子句”


如果您希望执行类似于SQL方式的更新,那么更新符合特定条件的所有项,您将只获取满足要更新的条件的项,修改它们,然后通过批处理请求更新它们。因此本质上,SQL更新的“where子句”将通过
getAll()
方法的过滤器来表示。

您是否尝试过在
pirItem
上使用setter方法来设置所有值?我已经设置了要更新的字段(计划数量)。我没有得到的是如何区分要更新的字段和过滤器字段(例如ABAPSQL中的where子句)。