Estendendo Mashups Usando Extensibilidade Diferenciada

É possível estender um mashup usando a extensibilidade diferenciada.

Procedimento

  1. Crie um arquivo XML de mashup com entradas para o arquivo de mashup a ser substituído. Este arquivo pode ter qualquer nome e não precisa replicar a estrutura de diretório relativa do arquivo XML que contém o mashup a ser estendido.
  2. Copie o arquivo XML no diretório INSTALL_DIR/extensions/app_dir/webpages . Como esse caminho do diretório não faz parte da instalação fornecida pelo aplicativo, crie-o dentro do diretório INSTALL_DIR/extensions O arquivo XML mashup original está presente no diretório INSTALL_DIR/repository/eardata/app_dir/war/mashupxmls/app_dir .

    Crie uma classe de servlet init para registrar o arquivo XML de mashup. Use o método loadIncrementalMashupXml na classe SCUIMashupHelper. O conteúdo do arquivo XML é incluído nos respectivos mashups na tela base baseada em mashup id.

    Considere o mashup fornecido pelo aplicativo a seguir.
    
    <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 usar a extensibilidade diferenciada para o mashup fornecido pelo aplicativo, crie um mashup incremental ou diferencial com o mesmo ID de mashup fornecido no seguinte arquivo override_mashup.xml que está presente na pasta /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>
    Se você usar o método de carregamento incremental loadIncrementalMashupXml(/myapps/override/override_mashup.xml, ...) , os elementos internos no arquivo override_mashup.xml serão mesclados no mashup original e se comportará como se o mashup fosse codificado da seguinte forma:
    <mashups>
        <mashup id="sample_getOrganizationList">
            <API>
                <Input>
                </Input>
                <Template>
                    <OrganizationList>
                        <Organization  IsEnterprise =""  OrganizationKey =""/>
                        </Organization>
                    </OrganizationList>
                </Template>
            </API>
        </mashup>
    </mashups>