Ampliación de mashups utilizando la extensibilidad diferencial

Puede ampliar un mashup mediante la extensibilidad diferencial.

Procedimiento

  1. Cree un archivo XML de mashup con entradas del archivo de mashup que se va a sustituir. 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.
  2. 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 en el 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 init para registrar el archivo XML de mashup. Utilice el método loadIncrementalMashupXml en la clase SCUIMashupHelper. 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.
    
    <mashups>
        <mashup endpoint="EP_CONFIG" id="sample_getOrganizationList"
            mashuptype="XAPI" transactional="true">
            <classInformation name="com.ibm.wsc.common.mashups.WSCBaseMashup"/>name="com.ibm.isccs.common.mashups.SCCSBaseMashup"/>
            <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="ISCCSSYS002"/>
                <AlternateResourceId altResourceId="ISCCRTORD0001"/>
                <AlternateResourceId altResourceId="ISCORD0001"/>
            </AlternateResourceIds><AlternateResourceIds>
                <AlternateResourceId altResourceId="WSCSYS00001"/>
                <AlternateResourceId altResourceId="WSC000001"/>
            </AlternateResourceIds>
        </mashup>
    </mashups>
    
    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"/>name="com.ibm.isccs.common.mashups.SCCSBaseMashup"/>
            <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="ISCCSSYS002"/>
                <AlternateResourceId altResourceId="ISCCRTORD0001"/>
                <AlternateResourceId altResourceId="ISCORD0001"/>
            </AlternateResourceIds><AlternateResourceIds>
                <AlternateResourceId altResourceId="WSCSYS00001"/>
                <AlternateResourceId altResourceId="WSC000001"/>
            </AlternateResourceIds>
        </mashup>
    </mashups>
    Si utiliza el método de carga incremental loadIncrementalMashupXml(/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>