Ampliación de mashups utilizando la extensibilidad diferencial
Puede ampliar un mashup mediante la extensibilidad diferencial.
Procedimiento
- Cree un archivo XML de mashup con entradas para el archivo de mashup que se va a ampliar. Este archivo puede tener cualquier nombre y no necesita replicar la estructura de directorios relativa del archivo XML que contiene el mashup que se va a ampliar.
- Copie el archivo XML en el directorio <INSTALL_DIR>/extensions/<app_dir>/webpages . Como esta vía de acceso de directorio no forma parte de la instalación proporcionada por la aplicación, créela dentro del directorio <INSTALL_DIR>/extensions . El archivo XML de mashup original está presente en el directorio <INSTALL_DIR>/repository/eardata/<app_dir>/war/mashupxmls/<app_dir> .
Cree una clase de servlet
initpara registrar el archivo XML de mashup. Utilice el métodoloadIncrementalMashupXmlen la claseSCUIMashupHelper. El contenido del archivo XML se añade a los mashups respectivos en la pantalla base que se basa en <mashup id>.Ponga por ejemplo el siguiente mashup suministrado por la aplicación.
Para utilizar la extensibilidad diferencial para el mashup proporcionado por la aplicación, cree un mashup incremental o diferencial con el mismo ID de mashup proporcionado en el siguiente archivo override_mashup.xml que está presente en la carpeta /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>Si utiliza el método de carga incrementalloadIncrementalMashupXml(/myapps/override/override_mashup.xml, ...), los elementos internos del archivo override_mashup.xml se fusionan en el mashup original y se comporta como si el mashup estuviera codificado de la forma siguiente:<mashups> <mashup id="sample_getOrganizationList"> <API> <Input> </Input> <Template> <OrganizationList> <Organization IsEnterprise ="" OrganizationKey =""/> </Organization> </OrganizationList> </Template> </API> </mashup> </mashups>