0

私はこれが信じられないほどイライラしています。InventoryFacadeClient を使用して、Change または Sync Web サービスを呼び出して製品の可用性を更新しようとしています。私が直面している問題は、要求を設定するために必要なすべての DataTypes をインスタンス化できないように見えることです。

非常にややこしいです。ChangeInventory を呼び出したかったのですが、要求を作成できず、SyncProductAvailability を開始しましたが、要求を作成できません。

以下の問題は、ProductIdentifierType が null であり、対応する "createProductIdentifierType" が Factory にないことです....ここで何が欠けているのかわかりません.Factory は中途半端なようです...

誰かがこのコードを完成させるのを手伝ってくれるなら、それは素晴らしいことですか?

public void setUp() throws Exception {
        String METHOD_NAME = "setUp";
        logger.info("{} entering", METHOD_NAME);
        super.setUp();

        InventoryFacadeClient iClient = super.initializeInventoryClient(false);

        InventoryFactory f = com.ibm.commerce.inventory.datatypes.InventoryFactory.eINSTANCE;
        com.ibm.commerce.inventory.facade.datatypes.InventoryFactory cf = iClient.getInventoryFactory();
        CommerceFoundationFactory fd = iClient.getCommerceFoundationFactory();



        // we must have customised the SyncProductAvailability web service to 
        // handle ATP inventory model.

        SyncProductAvailabilityDataAreaType dataArea = f.createSyncProductAvailabilityDataAreaType();
        SyncProductAvailabilityType sat = f.createSyncProductAvailabilityType();
        sat.setDataArea(dataArea);
        DocumentRoot root = cf.createDocumentRoot();
        sat.setVersionID(root.getInventoryAvailabilityBODVersion());

        ProductAvailabilityType pat = f.createProductAvailabilityType();
        ProductIdentifierType pid = pat.getProductIdentifier();
4

1 に答える 1

0

これに対する答えは別のフォーラムで見つけました。正しい CommerceFoundationFactory がありませんでした - ProductIdentifierType が作成されるクラスは次のとおりです。

com.ibm.commerce.foundation.datatypes.CommerceFoundationFactory fd2 = com.ibm.commerce.foundation.datatypes.CommerceFoundationFactory.eINSTANCE;

fd2.createProductIdentifierType

于 2014-02-17T22:54:53.143 に答える