Extension de la bibliothèque client

Vous pouvez étendre une bibliothèque client existante pour ajouter plus de données à la requête de service en cours, gérer de nouvelles données dans une réponse de service ou ajouter un nouveau comportement en construisant une requête de service entièrement nouvelle.

Procédure

  1. Démarrez HCL Commerce Developer.
  2. Identifiez la bibliothèque client à étendre (par exemple, CommonOrderFacadeClient).
  3. Identifiez le comportement de la bibliothèque client que vous avez l'intention d'ajouter ou de modifier (par exemple, en ajoutant des données supplémentaires à l'élément UserData du nom Order).
    1. Si l'extension inclut l'ajout de données, identifiez la méthode ObjectName() de génération appropriée à remplacer pour ajouter d'autres données. Étendez la classe et remplacez cette méthode. Par exemple, si vous ajoutez des données de gravure à un ensemble d'éléments de commande, vous ajoutez le code suivant à la méthode buildOrderItem() :
      
      protected OrderItemType[] buildOrderItem(Map parameters, String
      actionName) throws OrderException 
      
      
      {
      //Snippet below
      for (int i=0; i<orderItems.length; i++) //for all of the order
      items
      {
              OrderItemType orderItem = orderItems[i]; //get a particular
      order item
              //prepare the userData section
              UserDataType userData = orderItem.getUserData();
              if (userData == null)
              {
                      userData =
      CommerceFoundationFactory.eINSTANCE.createUserDataType();
              }
              orderItem.setUserData(userData);
              Map userDataFields  = userData.getUserDataField();
      
              //iterate through all the engraving parameters
              Set keys = parameters.keySet();
              Iterator it = keys.iterator();
              while (it.hasNext())
              {
                      String keyName = (String)it.next();
                      if (keyName.startsWith(ENGRAVINGKEYNAME))//if it is
      an engraving attribute
                      {
                              String[] values =
      (String[])parameters.get(keyName);
                              //create a new name, value pair type
                              userDataFields.put(keyName,values[i]);
                      }
              }
      }
      }
      
    2. Si l'extension inclut l'ajout d'un nouveau comportement, étendez la bibliothèque client et ajoutez une méthode pour créer une nouvelle requête d'objet de données de service qui représente le nouveau comportement.
  4. Configurez l'infrastructure de présentation pour enregistrer votre bibliothèque client étendue, afin d'autoriser la couche de présentation à utiliser votre bibliothèque étendue au lieu de la valeur par défaut.