Plataforma legada

Incluir mashups nos controladores fornecidos pelo aplicativo

É possível incluir mashups para os controladores fornecidos pelo aplicativo

Incluir um mashup nos controladores fornecidos pelo aplicativo é o mesmo que substituir um mashup para o InitController e o BehaviorController.

Por exemplo, para incluir um mashup em InitController, o XML do lado do servidor para a extensão InitController é o seguinte:
<?xml version="1.0" encoding="UTF-8"?>
<Controller 
  controllerId="extn.home.portlets.BackroomPickPortletExtnInitInitController"
	screenId="extn.home.portlets.BackroomPickPortletExtn">
    <MashupRefs>
        <MashupRef mashupId="extn_backroomPick_getShipmentListReadyForPick"
            mashupRefId="getShipmentListReadyForPickInit" permissionId="" extnType="ADD"/>
    </MashupRefs>
</Controller>
A definição do lado do cliente da extensão InitController é a seguinte:
scDefine([
  "scbase/loader!dojo/_base/declare",
  "scbase/loader!dojo/_base/kernel", 
  "scbase/loader!dojo/text", 
  "scbase/loader!sc/plat/dojo/controller/ScreenController", 
  "scbase/loader!extn/home/portlets/BackroomPickPortletExtn",
  "scbase/loader!sc/plat/dojo/controller/ExtnScreenController"], 
  function(
  _dojodeclare, _dojokernel, _dojotext, _scScreenController, _extnBackroomPickPortletExtn,_scExtnScreenController) {
    return _dojodeclare("extn.home.portlets.BackroomPickPortletExtnInitController", [_scScreenController], {
        screenId: 'extn.home.portlets.BackroomPickPortletExtn',
        mashupRefs: [{
            sourceNamespace: 'extn_backroomPick_getShipmentListReadyForPick_output',
            mashupRefId: 'getShipmentListReadyForPickInit',
            sequence: '',
            mashupId: 'backroomPick_getShipmentListReadyForPick',
            callSequence: '',
            sourceBindingOptions: '',
			extnType:'ADD'
        }]
    });
});
As principais diferenças entre substituir um mashup existente e incluir um mashup são as seguintes:
  • O valor do atributo extnType na definição XML do lado do servidor e do lado do cliente é configurado como ADD.

  • Todos os atributos para um mashup são definidos

  • O atributo mashupRefId inicia com extn_ que não corresponde a nenhum valor na tela fornecida pelo aplicativo

  • O atributo mashupId contém um mashup fornecido pelo aplicativo

Sempre que as chamadas de mashup presentes em BehaviorController forem concluídas, o evento onExtnMashupCompletion será gerado em uma extensão da tela Para obter a alça após a conclusão da chamada de mashup presente no BehaviorController, defina um assinante local no evento onExtnMashupCompletion

O exemplo a seguir ilustra como definir como assinante local no evento onExtnMashupCompletion :
subscribers : {
local : [
	       {
	  				eventId: 'onExtnMashupCompletion',
					sequence: '51', 
					description: '',
					listeningControlUId: '',
					handler : {
							methodName : "handleOnExtnMashupCompletion" // name of the handler method
						}
			   }
			  ]
Inclua a implementação para o método manipulador handleOnExtnMashupCompletion hanlder da seguinte forma:
handleOnExtnMashupCompletion: function(event, bEvent, ctrl, args)
{
	// add custom logic
}

A tabela a seguir descreve os dados do último argumento (args):

Tabela 1. Dados do último argumento (args)

A tabela a seguir descreve os dados do último argumento.

Dados do último argumento (args) Descrição
mashupContext Contexto da chamada mashup.
mashupObject O objeto de referência de mashup quando apenas um mashup é chamado
mashupArray A lista de referências de mashup quando vários mashups são chamados
inputData Os dados de entrada para a chamada de mashup
hasError Se ocorrer um erro ao chamar o mashup, o valor será configurado como True.
errorData Contém os dados relacionados a erros quando ocorre um erro ao chamar o mashup