2017-10-20 24 views
0

J'écris un composant sans visage UI5 ​​qui devrait être utilisé dans plusieurs autres applications. Les applications cibles sont situées dans un package d'un référentiel SAPUI5 ABAP. Le composant qui doit être inclus dans les cibles se trouve dans un package différent dans le même référentiel SAPUI5 ABAP.Composant de réutilisation SAP UI5

Comment inclure ce composant? De la documentation j'ai ajouté des changements à la cible manifest.json de la façon suivante:

"dependencies": { 
"minUI5Version": "1.30.0", 
"libs": { "sap.m": {}, "sap.ui.core": {}, "sap.ui.layout": {} }, 
"components": { "cls.dva": {} } 
}, 

Mais comment le composant est-il réellement trouvé? Ici, j'ai utilisé le chemin du noeud SICF. Dois-je ajouter ".Component" au chemin? Y a-t-il un autre endroit où je dois référencer le composant dépendant dans l'application cible?

Une autre question est de savoir comment et où instancier le composant? La fonction init() de la cible Component.js est-elle au bon endroit? Il y a aussi quelques paramètres que je devrais passer pour bien l'inialiser. En fin de compte, le composant et ses données doivent être disponibles dans l'application.

Merci,

Christian

Répondre

0

un autre chrétien ici ... :-)

au sujet de votre question, vous devez garder deux choses à l'esprit:

  1. L'id de votre composant sans visage
  2. Le nom de votre composant sans visage dans le référentiel SAP ABAP

La section dépendances de votre application est le bon endroit pour placer le composant que vous souhaitez charger. Par conséquent, il n'est pas important de savoir dans quel paquet du référentiel SAP ABAP votre composant sans visage pose. L'identifiant est important.

Jetons un coup d'oeil dans le manifeste de votre composant sans visage:

{ 
    "_version": "1.4.0", 
    "sap.app": { 
    "id": "cls.dva", 
    "type": "component", 
    "i18n": "i18n/i18n.properties", 
    "applicationVersion": { 
    "version": "1.0.0" 
    }, 
    "resources": "resources.json", 
    ... 
    }, 
    "sap.ui": { 
    ... 
    } 
    ... 
} 

Comme vous pouvez le voir l'identification de ce composant est égal à l'identifiant que vous tapez dans la section des dépendances de l'application qui doit utiliser votre composant. C'est tout ce dont vous avez besoin pour prendre soin de. Maintenant, si vous voulez charger et accéder à votre composant dépendant dans la fonction init de votre Component.js (ce qui est un bon endroit s'il devrait être disponible dans toute l'application), vous pouvez faire ce qui suit (ici vous besoin du nom du composant de réutilisation que vous lui avez donné au cours du premier déploiement, par exemple z_cls_dva):

init: function() { 
    sap.ui.component({ 
    manifestUrl: "/sap/bc/ui5_ui5/sap/z_cls_dva/manifest.json", 
    async: true, 
    manifestFirst: true, 
    componentData: { componentSetting: true } 
    }).then(function(oComponent) { 
    this._clsDvaReuse = oComponent 
    }.bind(this)).catch(function(sError) { 
    jQuery.sap.log.error(sError, "-", this.getManifestEntry("sap.app").id) 
    }.bind(this)) 
} 

Via le componentData vous êtes en mesure de fournir des paramètres au composant de réutilisation. Vous pouvez y appeler le this.getComponentData() pour y accéder. Vous pouvez également utiliser la propriété paramètres pour fournir votre configuration au composant. Lisez la documentation sap.ui.component pour plus de détails.

Remarque: À partir de SAPUI5 1.48, la recommandation de chargement des composants de réutilisation a changé. Voir the corresponding article in the sdk documentation.