Début de la zone de contenu

Procedure documentation Transfert de paramètres supplémentaires à Accrual Engine (AE)  Locate the document in its SAP Library structure

1. Transfert de nouveaux paramètres à AE pour provisions

Vous souhaitez transférer un nouveau paramètre, tel que le centre de profit, le marché, etc. au composant Accrual Engine IPMO de CRM.

Souscription dans Billing Engine

Vous souhaitez créer une souscription pour la fonction ACE de l'événement _ACCIMI1.

  1. Pour ce faire, accédez à Billing Engine Framework Navigator (transaction CRM_IPM_BEFN).
  2. Créez une nouvelle souscription. Pour ce faire, sélectionnez Autres entités de métadonnées pour accéder aux souscriptions. Pour créer une nouvelle souscription à partir du menu contextuel, cliquez avec le bouton droit de la souris sur Souscriptions. Affectez un nom dans l'espace nom client (Z*) et saisissez le nom du modèle include comme nom de programme.
  3. Sélectionnez votre souscription et cliquez avec le bouton droit de la souris pour accéder au modèle (Saut ® Modèle). Le système crée include s'il n'existe pas encore. Insérez le codage suivant.

Note

Dans cet exemple, le système lit le centre de profit à partir du set comptable et le transfère à Accrual Engine en tant que paramètre distinct. Étant donné qu'un modèle Billing Engine est impliqué, le codage doit être saisi en tant que commentaire.

Example

*   DATA:

*     LS_&SUBSCRIPTION%_OBJECT  TYPE CRMT_IPM_CAE_BE_OBJECT,

*     LS_&SUBSCRIPTION%_PARAM   TYPE CRMT_IPM_CAE_BE_PARAM,

*     LV_&SUBSCRIPTION%_CUR     TYPE CRMT_IAOM_OBJECT_ID,

*     LS_&SUBSCRIPTION%_SDCO    TYPE CRMT_IPM_ACC_SDCO,

*     LV__&SUBSCRIPTION%_PRCTR  TYPE PRCTR.

*
* * boucle sur objet réel et sous-objets associés

*   boucle sur lt_ace_object dans LS_&SUBSCRIPTION%_OBJECT

*     où OBJID = ls_ace_object-objid OR

*           PARENT_GUID = ls_ace_object-objid.

*     initialiser : LS_&SUBSCRIPTION%_PARAM, LV_&SUBSCRIPTION%_PRCTR.

* * vous avez ici besoin de votre propre codage pour renseigner le centre de profit

* * par exemple, il est lu à partir du set comptable

*       LV_&SUBSCRIPTION%_CUR = LS_BDI_WRK-SRC_GUID.

*       READ TABLE IS_BDOC-SERVICE_SDCO[] INTO LS_&SUBSCRIPTION%_SDCO

*         WITH KEY CURRENT_OBJECT_ID = LV_&SUBSCRIPTION%_CUR.

*     IF SY-SUBRC = 0.

*       LV_&SUBSCRIPTION%_PRCTR = LS_&SUBSCRIPTION%_SDCO-PRCTR.

* *     créer nouveau paramètre pour centre de profit

*       LS_&SUBSCRIPTION%_PARAM-BE_HEAD_NO  =

*                           LS_&SUBSCRIPTION%_OBJECT-BE_HEAD_NO.

*       LS_&SUBSCRIPTION%_PARAM-OBJID       =

*                           LS_&SUBSCRIPTION%_OBJECT-OBJID.

*       LS_&SUBSCRIPTION%_PARAM-DATE_FROM   =

*                           LS_&SUBSCRIPTION%_OBJECT-DATE_FROM.

*       LS_&SUBSCRIPTION%_PARAM-NAME        = 'ZZPRCTR'.

*       LS_&SUBSCRIPTION%_PARAM-CONTENT     = LV_&SUBSCRIPTION%_PRCTR.

*       APPEND LS_&SUBSCRIPTION%_PARAM  TO  LT_ACE_PARAM.

* ENDIF.

*   endloop.

  1. Affectez la souscription à l'objet BD ® fonction ACE ® groupe de fonctions O ® module fonction MAP4ACCR ® événement _ACCIMI1 et générez le module fonction MAP4ACCR.

Ajout à la structure de paramètres pour Accrual Engine

Créez un append pour la structure IPMO_ACE_PARAMETERS dans le système ERP pour les paramètres supplémentaires requis. Vérifiez que les noms sont identiques à ceux du codage présenté ci-dessus pour l'exemple ZZPRCTR. Cela garantit que le nouveau paramètre est disponible dans Accrual Engine.

2. Transfert d'un nouveau paramètre à AE pour réalisation de produits

Vous souhaitez transférer un nouveau paramètre, tel que le centre de profit, le marché, etc. au composant Accrual Engine IPM de CRM.

Implémentation BAdI

Créez une implémentation pour le BAdI CRM_IPM_CAE_BADI dans le système CRM, et fournissez les paramètres requis dans la méthode CHANGE_DATA. Dans l'exemple suivant, le système transfère le centre de profit à AE en tant que paramètre distinct, et saisit toujours la valeur 4711.
Le codage est le suivant :

Example

DATA: ls_ace_object  TYPE crmt_ipm_cae_object,

          ls_ace_param   TYPE crmt_ipm_cae_param.

 

    LOOP AT CT_ACE_OBJECT INTO LS_ACE_OBJECT.

*   créer nouveau paramètre

      ls_ace_param-objid = ls_ace_object-objid .

      ls_ace_param-date_from = ls_ace_object-date_from.

      ls_ace_param-name  = ‘ZZPRCTR.

      Ls_ace_param-content = ‘4711’.

      APPEND ls_ace_param TO ct_ace_params.

    ENDLOOP.

Note

Si vous devez relire le contrat de vente de licences, vous pouvez utiliser CT_ACE_OBJECT-OBJID à cet effet. Il correspond à CRMD_ORDERADM_I-GUID. CT_ACE_OBJECT-OBJECT_TYPE indique si un poste de royalties à payer, un poste de demande de facture ou un poste de répartition est impliqué.

Ajout à la structure de paramètres pour Accrual Engine

Créez un append pour la structure IPM_ACE_PARAMETERS pour les paramètres supplémentaires requis. Vérifiez que les noms sont identiques à ceux du codage présenté ci-dessus pour l'exemple ZZPRCTR. Cela garantit que le nouveau paramètre est disponible dans Accrual Engine.

3. Transfert de paramètres AE à l'interface FI

Implémentation BAdI

Si vous souhaitez également transférer un paramètre de Accrual Engine à l'interface FI, vous devez créer une implémentation pour le BAdI CRM_ACE_POSTING_BADI avec la méthode CHANGE_ITEM_DATA, qui contient le codage suivant.

Note

Si la zone dans laquelle la saisie doit être effectuée n'existe pas dans la structure ACEPS_BAPI_PRELINEITEM, vous devez l'inclure à l'aide d'un append. Vérifiez que les noms utilisés ici sont identiques à ceux de la structure BAPIACGL09.

Example

 

TYPE-POOLS: rsds, aceds.

 

  DATA: lv_ip     TYPE zcomt_product_id,

        lv_market TYPE zcrmt_ipm_market.

 

  DATA: lt_selrng  TYPE rsds_frange_t,

        ls_selrng  TYPE LINE OF rsds_frange_t,

        ls_selopt  TYPE LINE OF rsds_selopt_t,

        lt_acedsop TYPE aceds_ty_db_param_t.

 

  FIELD-SYMBOLS: <ls_acedsop> TYPE LINE OF aceds_ty_db_param_t.

 

* initialiser les zones standard pour lire le gestionnaire de comptes

* nécessaire uniquement si vous renseignez vos propres objets comptables

  CLEAR: cs_prebapi_item-ext_object_id,

         cs_prebapi_item-bus_scenario,

         cs_prebapi_item-cond_type.

 

* lire paramètre Accrual Engine

  ls_selopt-sign   = 'I'.

  ls_selopt-option = 'EQ'.

  CLEAR ls_selrng.

  ls_selrng-fieldname = 'BUKRS'.

  ls_selopt-low = is_docitem-bukrs.

  APPEND ls_selopt TO ls_selrng-selopt_t.

  APPEND ls_selrng TO lt_selrng.

  CLEAR ls_selrng.

  ls_selrng-fieldname = 'OBJID'.

  ls_selopt-low = is_docitem-objid.

  APPEND ls_selopt TO ls_selrng-selopt_t.

  APPEND ls_selrng TO lt_selrng.

  CLEAR ls_selrng.

  ls_selrng-fieldname = 'SUBID'.

  ls_selopt-low = is_docitem-subid.

  APPEND ls_selopt TO ls_selrng-selopt_t.

  APPEND ls_selrng TO lt_selrng.

  CLEAR ls_selrng.

  ls_selrng-fieldname = 'PARAM_NAME'.

  ls_selopt-low = 'ZZPRCTR'.

  APPEND ls_selopt TO ls_selrng-selopt_t.

  APPEND ls_selrng TO lt_selrng.

  CALL FUNCTION 'ACEDSDB_PARAM_READ'

    EXPORTING

      id_ace_comp  = is_docitem-comp

      it_selranges = lt_selrng

    IMPORTING

      et_acedsop   = lt_acedsop

    EXCEPTIONS

      not_found    = 1.

 

* renseigner centre de profit

  READ TABLE lt_acedsop ASSIGNING <ls_acedsop>

    WITH KEY param_name = 'ZZPRCTR'.

    IF sy-subrc = 0.

    cs_prebapi_item-profit_ctr = <ls_acedsop>-content.

  ENDIF.

 

Fin de la zone de contenu