Estensione dei mashup utilizzando l'estendibilità differenziale
È possibile estendere un mashup utilizzando l'estensibilità differenziale.
Procedura
- Creare un file XML di mashup con voci per il file di mashup da sovrascrivere. Questo file può avere qualsiasi nome e non è necessario replicare la struttura di directory relativa del file XML che contiene il mashup da estendere.
- Copiare il file XML nella directory <INSTALL_DIR>/extensions/<app_dir>/webpages . Poiché questo percorso di directory non fa parte dell'installazione fornita dall'applicazione, crearlo nella directory <INSTALL_DIR>/extensions . Il file XML di mashup originale è presente nella directory <INSTALL_DIR>/repository/eardata/<app_dir>/war/mashupxmls/<app_dir> .
Creare una classe servlet
initper registrare il file XML mashup. Utilizzare il metodoloadIncrementalMashupXmlnella classeSCUIMashupHelper. Il contenuto del file XML viene aggiunto ai rispettivi mashup nella schermata di base basata su <mashup id>.Considerare il seguente mashup fornito dall'applicazione.
Per utilizzare l'estendibilità differenziale per il mashup fornito dall'applicazione, creare un mashup incrementale o differenziale con lo stesso ID mashup fornito nel seguente file override_mashup.xml presente nella cartella /myapps/override .<mashups> <mashup endpoint="EP_CONFIG" id="sample_getOrganizationList" mashuptype="XAPI" transactional="true"> <classInformation name="com.ibm.wsc.common.mashups.WSCBaseMashup"/> <API Name="getOrganizationList"> <Input> <Organization DisplayLocalizedFieldInLocale="xml:CurrentUser:/User/@Localecode" MaximumRecords=""> <OrgRoleList> <OrgRole RoleKey="ENTERPRISE"/> </OrgRoleList> <DataAccessFilter UserId="xml:CurrentUser:/User/@Loginid"/> <OrderBy> <Attribute Desc="N" Name="OrganizationName"/> </OrderBy> </Organization> </Input> <Template> <OrganizationList> <Organization CustomerMasterOrganizationCode="" LocaleCode="" OrganizationCode="" OrganizationName=""> <BillingPersonInfo City="" Country="" ZipCode=""/> </Organization> </OrganizationList> </Template> </API> <APINamespace inputNS="getOrganizationList_input" outputNS="getOrganizationList_output"/> <AlternateResourceIds> <AlternateResourceId altResourceId="WSCSYS00001"/> <AlternateResourceId altResourceId="WSC000001"/> </AlternateResourceIds> </mashup> </mashups><mashups> <mashup endpoint="EP_CONFIG" id="sample_getOrganizationList" mashuptype="XAPI" transactional="true"> <classInformation name="com.ibm.wsc.common.mashups.WSCBaseMashup"/> <API FlowName="MyService"> <Input> <Organization DisplayLocalizedFieldInLocale="xml:CurrentUser:/User/@Localecode" MaximumRecords=""> <OrgRoleList> <OrgRole RoleKey="ENTERPRISE"/> </OrgRoleList> <DataAccessFilter UserId="xml:CurrentUser:/User/@Loginid"/> <OrderBy> <Attribute Desc="N" Name="OrganizationName"/> </OrderBy> </Organization> </Input> <Template> <OrganizationList> <Organization CustomerMasterOrganizationCode="" LocaleCode="" OrganizationCode="" OrganizationName=""> <BillingPersonInfo City="" Country="" ZipCode=""/> </Organization> </OrganizationList> </Template> </API> <APINamespace inputNS="getOrganizationList_input" outputNS="getOrganizationList_output"/> <AlternateResourceIds> <AlternateResourceId altResourceId="WSCSYS00001"/> <AlternateResourceId altResourceId="WSC000001"/> </AlternateResourceIds> </mashup> </mashups>Se si utilizza il metodo di caricamento incrementaleloadIncrementalMashupXml(/myapps/override/override_mashup.xml, ...), gli elementi interni nel file override_mashup.xml vengono uniti nel mashup originale e si comportano come se il mashup fosse codificato come segue:<mashups> <mashup id="sample_getOrganizationList"> <API> <Input> </Input> <Template> <OrganizationList> <Organization IsEnterprise ="" OrganizationKey =""/> </Organization> </OrganizationList> </Template> </API> </mashup> </mashups>