Atributos e Nós do Esquema

Para a definição do objeto de negócios, o objetivo do esquema é criar um vínculo entre o esquema e um objeto de manutenção. Para a definição do serviço de negócios, é necessário especificar o vínculo entre o esquema e o serviço, seja ele serviço geral, de pesquisa ou de objeto de manutenção. Para a definição do script de serviço, é necessário definir a API para a transmissão de informações de e para o script. A documentação a seguir contém uma lista completa de nós e atributos XML disponíveis quando você cria um esquema.

Conteúdo

Quatro Tipos de Elemento

Tipo de Dados de um Elemento de Campo

Referenciando Outros Elementos

Considerações sobre Horário Padrão

Atributos de Mapeamento

Atributos Descritivos

Constantes do Esquema

Padronização e Variáveis do Sistema

Nós e Atributos de Nivelamento

Zona de Pesquisa

Estender Segurança para Script de Serviço

Substituindo a Ação de um Serviço de Negócios

Especificando searchBy para um Serviço de Pesquisa

Incluindo Outros Esquemas

Atributos de Compatibilidade

Quatro Tipos de Elemento

O elemento do esquema pode ter um entre quatro tipos de estrutura. Note que há duas classes de tipo de elemento: o grupo e a lista de nós estruturais, e os nós do campo e não processado que contêm dados.

Mnemônico Valores Válidos Descrição Exemplos
type= "field"

Este tipo é o padrão para qualquer elemento que não esteja explicitamente rotulado como outra coisa além de campo. Portanto, você praticamente não precisa rotular explicitamente um elemento como campo. Note que um elemento de campo, diferentemente dos grupos ou listas, contém informação nos próprios nós em vez de outros.

"group"

O elemento de grupo é geralmente um elemento somente estrutural do esquema, caso em que não tem mapeamento.

Note que, ao agrupar vários elementos usados para mapear uma estrutura XML de um campo CLOB/XML de um registro orientado por objeto de negócios, o mapeamento pode estar no nível do grupo.

Exemplo em que um grupo é usado para criar uma estrutura

<schema>
  <input type="group"
    <userId/>
  </input>
  <output type="group">
    <firstName/>
    <lastName/>
  </output>
</schema>

Exemplo em que o grupo inclui o mapeamento:

<parameters type="group" 
mapXML="BO_DATA_AREA" mdField=
"F1_TODOSUMEMAIL_PARM_LBL"/>
  <numberOfDays 
  mdField="F1_NBR_DAYS" 
  required="true"/>
  <frequency 
   mdField="F1_FREQUENCY"/>
"list"

O nó de lista é estrutural, assim como o nó de grupo. A única diferença é que a estrutura de lista pode se repetir várias vezes em um documento XML.

Exemplo de um esquema com lista:

<schema>
  <statesList type="list">
    <state isPrimeKey="true"/>
    <description/>
  </statesList>
</schema>

Exemplo de um esquema com lista:

<xml>
  <statesList>
    <state>AK</state>
    <description>Alaska</description>
  </statesList>
  <statesList>
    <state>AL</state>
    <description>Alabama</description>
  </statesList>
...
</xml>
"raw"

O tipo de dados não processado é usado para capturar um bloco de texto não processado que não tem uma estrutura inerente associada a ele.

<sendDetail type="raw" />

Exemplo de uma instância de XML para o esquema anterior:

<sendDetail>
  <messageInfo>
    <senderAddress>123 W. Main St,    Ontario, CA
    </senderAddress>
    <corpZone>3A</corpZone>
  </messageInfo>
</sendDetail>

Tipo de Dados de um Elemento de Campo

Entre os quatro tipos de elemento, só o campo pode ter um tipo de dados.

Mnemônico Valores Válidos Descrição Exemplos
dataType= "string"

Por padrão, um elemento de campo é uma string. Portanto, não é necessário especificar o tipo de dados string.

<schema>
  <custName dataType="string"/>
</schema>
"number"

Define um elemento que é um número.

Observação: As dicas da IU incluem uma definição para Suprimir a Formatação Automática dos Números.
Observação: Use o atributo currencyRef para exibição automática do símbolo de moeda associado ao código da moeda referenciado. As posições decimais da moeda são ignoradas por essa formatação, o que permite a você exibir um símbolo de moeda para uma tarifa unitária com muitos decimais.

Exemplos

<schema>
  <count dataType="number"/>
</schema>
<schema>
  <taxRate dataType="number" 
   currencyRef="currency"/>
</schema>
"money"

Atributos adicionais e opcionais

currencyRef="element name"

Define um elemento que representa um valor monetário.

A referência da moeda é opcional e, se deixada em branco, a moeda da instalação será usada. Formatação e validação automáticas a serem aplicadas com base na moeda. Por exemplo, o símbolo da moeda será mostrado durante a renderização automática. Além disso, o número de casas decimais não pode ultrapassar o número válido definido para a moeda.

Observação: Para obter a sintaxe compatível para referência a outros elementos, consulte Referenciando Outros Elementos.
<schema>
  <currency default="USD" 
    suppress="true"/>
  <balance dataType="money" 
   currencyRef="currency"/>
</schema>
"lookup"

Atributo adicional obrigatório

lookup="field name"

Define um elemento que tem valores válidos definidos usando uma consulta. O campo de pesquisa é obrigatório.

<schema>
  <status dataType="lookup" 
   lookup="STATUS_FLG"/>
</schema>
"lookupBO"

Atributo adicional obrigatório

lookupBO="bo name"

Define um elemento que tem valores válidos definidos usando uma busca extensível. O objeto de negócios da busca extensível é obrigatório.

<schema>
  <category dataType="lookupBO" 
   lookupBO="CM-BusinessCategory"/>
</schema>
"boolean"

Define um elemento que tem valores "S" e "N".

<schema>
  <allowsEdit dataType="boolean"/>
</schema>
"date"

Define um elemento que representa uma data.

<schema>
  <startDate dataType="date"/>
</schema>

"dateTime"

Define um elemento que representa uma data e uma hora.

Observação: Para obter a configuração adicional disponível para os campos de data/hora que representam o horário padrão, consulte Considerações do Horário Padrão.
<schema>
  <startDateTime 
  dataType="dateTime"/>
</schema>
"time"

Define um elemento que representa uma hora.

<schema>
  <startTime dataType="time"/>
</schema>
"uri"

Define um elemento que captura um URI. Elementos definidos com esse tipo ativam o suporte à Lista de Permissões de URI e às Substituições, conforme descrito em Fazendo Referência a URIs .

<schema>
  <exportDirectory dataType="uri"/>
</schema>

Referenciando Outros Elementos

Há vários atributos que permitem uma referência a outro elemento no mesmo esquema. A sintaxe compatível da referência XPath é a mesma em todos os casos. Esta seção contém exemplos do uso do atributo de referência padrão (defaultRef).

Referência a um elemento-irmão:

<schema>
   <id mapField="ACCT_ID" required="true"/>
   <altId defaultRef="id" required="true"/>
</schema>

Referência a um elemento em um grupo mais alto:

<schema>
   <id mapField="ACCT_ID" required="true"/>
   <msgInfo type="group" mapXML="XML_FIELD">
     <altId defaultRef="../id" required="true"/>
   </msgInfo>
</schema>

Referência a um elemento em um grupo mais baixo:

<schema>
   <id mapField="ACCT_ID" defaultRef="msgInfo/altId" required="true"/>
   <msgInfo type="group" mapXML="XML_FIELD">
     <altId required="true"/>
   </msgInfo>
</schema>

Referência a um elemento em outro grupo:

<schema>
  <acctInfo type="group">
    <id mapField="ACCT_ID" required="true"/>
  </acctInfo>
   <msgInfo type="group" mapXML="XML_FIELD">
     <altId defaultRef="../acctInfo/altId" required="true"/>
   </msgInfo>
</schema>

Considerações do Horário Padrão

A maioria dos campos de data/hora representa horários "legais", tais que, se um fuso horário altera os relógios para os horários de verão e de inverno, o campo de data/hora captura o horário atual observado. Entretanto, alguns campos de data/hora precisam ser sempre capturados no horário padrão para evitar confusões ou ambiguidade. Um bom exemplo é uma data e hora relacionadas a dados de intervalo detalhados. Para obter mais informações, consulte Criando Fusos Horários.

Ao definir um elemento com dataType="dateTime", você tem a opção de configurar stdTime="true", que indica que os dados capturados no elemento sempre representam o horário padrão do fuso horário-'base'. O fuso horário-'base' está especificado nas Opções de instalação.

Observação: Se um elemento é mapeado para uma tabela ou campo com Tipo de Horário Padrão Físico, stdTime="true" está implícito. Para obter mais informações, consulte Campos.

Exemplo:

<schema>
  <startTime dataType="Time" stdTime="true"/>
</schema>

Se o fuso horário que representa o campo de data/hora não for o mesmo da instalação, use a definição opcional stdTimeRef="XPath ao elemento de fuso horário" em um elemento de data/hora para indicar que o elemento representa o horário padrão e indica o fuso horário a ser usado. Para obter a sintaxe compatível para referência a outros elementos, consulte Referenciando Outros Elementos.

Exemplo:

<schema>
  <alternateTimeZone fkRef="F1-TZONE" suppress="true"/>
  <startDateTime dataType="dateTime" stdTimeRef="alternateTimeZone"/>
</schema>
Observação: Se um elemento é mapeado para uma tabela ou campo com Tipo de Horário Padrão Referenciado, stdTime= "XPath" está implícito. Para obter mais informações, consulte Campos.
Observação: Quando os elementos do esquema são capturados no horário padrão, o mapa da IU tem suporte para a exibição automática dos dados em notação HTML com a aplicação de correção para horário de verão/inverno. Para obter mais informações, consulte o atributo HTML oraType="dateTime; stdTime:true".

Pode haver casos em que a data/hora é capturada como horário padrão em um fuso horário, mas precisa ser exibida em outro fuso horário. Nesse caso, o atributo displayRef="XPath" pode ser usado além do atributo apropriado que identifica o fuso horário em que os dados foram capturados. Para obter a sintaxe compatível, consulte Referenciando Outros Elementos.

<schema>
  <displayTimeZone fkRef="F1-TZONE" suppress="true"/>
  <startDateTime dataType="dateTime" stdTime="true" displayRef="displayTimeZone"/>
</schema>

Atributos de Mapeamento

Ao criar o esquema, é possível escolher um dos atributos de mapeamento a seguir.

Mnemônico Valores Válidos Descrição Exemplos
mapField= "field name"

No caso de um objeto de negócios, o atributo mapField é usado para identificar a coluna do banco de dados à qual o elemento está relacionado. Nos esquemas de serviços de negócios, o atributo mapField= é usado para vincular um elemento do esquema a um elemento do serviço.

<schema>
  <factId 
   mapField="FACT_ID"/>
</schema>
mapChild= "table name"

O atributo mapChild só é usado para o mapeamento de objetos de negócios. Ele é usado de duas maneiras:

  • Primeiro, para criar uma lista no objeto de negócios que corresponda a uma tabela-filho de um objeto de manutenção.

  • Segundo, é possível usar mapChild para identificar a tabela-filho em que um campo nivelado está. Para obter mais informações, consulte seção de nivelamento a seguir.

Exemplo de uma lista dentro de uma tabela-filho de um objeto de negócios:
<persons type="list" 
   mapChild="CI_ACCT_PER"
  <personId mapField="PER_ID"/>
</persons>
mapList= "list name"

O atributo mapList só é usado para o mapeamento de serviços de negócios. Ele é usado de duas maneiras:

  • Primeiro, para criar uma lista no serviço de negócios que corresponda a uma lista do serviço.

  • Segundo, é possível usar mapList para identificar a lista em que um campo nivelado está. Para obter mais informações, consulte seção de nivelamento a seguir.

Exemplo de uma lista dentro de um serviço de negócios:
<selectList type="list" 
  mapList="DE" 
  <value mapField="COL_VALUE"> 
    <row mapList="DE_VAL"> 
      <SEQNO is="2"/> 
    </row> 
  </value>  
</selectList>
mapXML= "field name"

O atributo mapXML geralmente é usado para mapear estruturas XML para um campo de "large character"/XML do serviço. Note que, quando você usa mapXML para mapear uma estrutura de lista ou grupo (type="list" ou type="group"), não é necessário mapear todos os elementos-filho da estrutura. Também é possível mapear elementos de lista a um campo "large character" associado à lista-filho.

<enrollmentRequest type="group" 
mapXML="CASE_CLOB">
  <messageID/>
  <sender/>
</enrollmentRequest>
<enrollmentKey 
mapXML="CASE_CLOB"/>
<enrollmentInfo type="list" 
mapChild="CI_CASE_CHILD">
  <sequence 
  mapField="CHILD_SEQ"/>
  <name 
  mapXML="CASE_CHILD_CLOB"/>
  <value 
  mapXML="CASE_CHILD_CLOB"/>
</enrollmentInfo>
isPrimeKey= "true"

É obrigatório especificar uma chave primária para uma lista definida em um elemento XML mapeado (type="list" mapXML="CLOB"). A chave primária é usada pela estrutura para determinar se a adição, a atualização ou a exclusão de um elemento da lista é obrigatória durante a atualização de um objeto de negócios.

Observação: Não é necessário especificar a chave primária de uma lista de objeto de negócios mapeada para a lista do objeto de manutenção. Quando uma lista física é mapeada, a chave primária é derivada de metadados físicos existentes.
<questionnaire 
type="list" mapXML="CASE_CLOB">
  <question 
  isPrimeKey="true"/>
  <answer/>
</questionnaire>
orderBy= "XPath asc|desc, XPath asc|desc"

Por padrão, uma lista definida em um elemento XML mapeado (type="list" mapXML="CLOB") é classificada pelo primeiro elemento da lista. Uma ordem de classificação diferente pode ser especificada por meio do atributo orderBy. O valor do atributo é uma lista separada por vírgulas de XPaths de campos relativos ao elemento da lista com uma ordem de classificação opcional (o padrão é crescente).

Observação: Isto só está disponível para listas mapeadas como XML em objetos de negócios.
<questionnaire type="list" 
  orderBy="page/section, 
page/sequence" 
mapXML="CASE_CLOB">
<question isPrimeKey="true"/>
<answer/>
<page type="group">
  <section/>
  <sequence/>
</page>
</questionnaire>

Atributos Descritivos

Os atributos a seguir podem ser usados para descrever um elemento do esquema e fornecer configurações adicionais relacionadas a ele. Geralmente, esses atributos são úteis somente para elementos de campo.

Mnemônico Valores Válidos Descrição Exemplos
<!-- comment -->

Use para adicionar um comentário a um esquema com os caracteres de abertura e fechamento especiais <!-- e -->.

<schema>
  <!-- This schema is used to 
capture business information 
only, please refer to the 
'HUMAN' BO for person 
information -->
</schema>
description= "text"

Este atributo pode ser usado para dar uma descrição interna do elemento e ajudar um leitor do esquema a compreender o motivo comercial do elemento.

<schema>
  <active type="boolean" 
description="active account" 
label="Active"/>
</schema>
label= "text"

O rótulo de um elemento foi designado para ser um pequeno bloco de texto que geralmente precede o elemento na interface do usuário.

<schema>
  <active type="boolean" 
description="active account" 
label="Active"/>
</schema>
required= "true"

Usado para exigir a existência de um elemento durante a interação com objetos.

Observação: Para esquemas incluídos, o atributo required="true" não é processado nos esquemas dos objetos de negócios e de manutenção quando estes estão inclusos em um esquema do script de serviço. Isso é para dar suporte à capacidade do script de serviço de preencher elementos obrigatórios antes que um objeto de negócios ou serviço de negócios incorporado seja chamado pelo script de serviço.

<schema>
  <logDate mapField="LOG_DT" 
default="%CurrentDate" 
required="true" 
private="true"
</schema>
mdField= "field code"

O atributo de campo de metadados é usado para associar um elemento aos metadados de um campo. O campo define o tipo de dados, além do rótulo e do texto de ajuda. Se você vincular um elemento a um campo de metadados, não precisará especificar nenhum desses atributos.

Observação: No esquema do objeto de negócios, o atributo mapField é usado para derivar o tipo de dados e o rótulo. Um atributo mdField pode ser informado para substituir esses atributos, se necessário. Se o elemento estiver mapeado a uma coluna XML, o mdField é necessário para informar o tipo de dados e o rótulo apropriados.
<schema>
  <active 
mdField="CM_ACTIVE_SW"/>
</schema>
fkRef= "FK Reference Code"

Se o elemento for uma chave externa, definir a Referência dele ativará a validação do elemento pela estrutura durante a interação com o esquema e informará automaticamente descrições e a funcionalidade de navegação.

<schema>
  <person fkRef="PER" 
mapField="CHAR_VAL_FK1">
   <row mapChild="CI_SA_CHAR">
      <CHAR_TYPE_CD is="PER"/>
    </row>
  </person>
</schema>
private= "true"

A marcação de um elemento como privado impede que ele seja exposto na interação com o esquema.

Observação: O elemento privado precisa de um padrão.
<schema>
  <type mdField="SA_TYPE_CD" 
default="E1" private="true"/>
</schema>
suppress= "true"

Essa definição impede a aparição do elemento em interfaces do usuário geradas automaticamente.

Observação: Este atributo pode ser especificado em um grupo. Nesse caso, todos os elementos do grupo serão suprimidos.
Observação: Consulte Definição de Padrões e Variáveis do Sistema para obter dicas relacionadas aos valores padrão para elementos suprimidos.
<schema>
    <ls mdField="LIFE_SUPPORT_FLG" 
default="N" suppress="true"/<
</schema>
"blank"

Essa definição significa que a renderização automática da interface do usuário no modo de exibição ocultará o elemento se o valor dele estiver em branco. O elemento ainda poderá ser modificado no mapa de entrada, esteja esse elemento em branco ou não.

<schema>
  <email mdField="EMAIL" 
suppress="blank"/>
</schema>
"input"

Essa definição significa que a renderização automática da IU suprimirá o elemento da entrada, mas ele ainda pode ser exibido se não estiver em branco.

Observação: Elementos marcados como suppress="input" se comportarão como suppress="blank". Se o valor estiver em branco, ele não será exibido nos mapas de entrada ou exibição. Se o valor estiver presente, o elemento será exibido nos mapas de entrada e de exibição.
Observação: Consulte Definição de Padrões e Variáveis do Sistema para obter dicas relacionadas aos valores padrão para elementos suprimidos.
<schema>
  <email mdField="EMAIL" 
suppress="input"/>
</schema>
noAudit= "true"

Esta definição impede que o elemento seja exibido como alterado no spot de plug-in de auditoria do objeto de negócios. Se especificada em um grupo ou nó de lista, ela se aplica a todo o nó. Não é possível especificá-la no nó raiz do esquema, somente nos elementos do esquema.

Observação: Esse atributo só se aplica a esquemas de objetos de negócios.
<schema>
  ...
  <version mapField="VERSION_NBR"
 noAudit="true"/>
  ...
  <workFields type="group"
 noAudit="true"
    <lastProcessedId/>
    <lastProcessedTime/>
  </workFields>
</schema>
storeEmptyNodes= "true"

Por padrão, nós vazios são removidos de uma instância do objeto de negócios depois de salvar. Essa configuração permite que um elemento de lista ou de grupo mantenha explicitamente seus nós vazios.

Esse atributo pode ser útil caso os dados do objeto de negócios sejam trocados com um sistema externo e haja a necessidade de distinguir entre um valor vazio de um elemento que participa da sincronização e um elemento que não participa e é, portanto, omitido da mensagem.

Observação: Isso só está disponível para elementos de lista e de grupo.
<schema>
  <message type="group" storeEmptyNodes="true">
  ...
  </message>
</schema>
emitEmptyGroups= "true"

Por padrão, nós vazios não são incluídos na saída de um objeto de negócios ou de uma chamada de serviço de negócios. Este atributo é definido no nó de esquema de nível superior, permitindo que nós vazios de todos os grupos e elementos de lista sejam incluídos na saída.

Esse atributo pode ser útil nas mesmas situações que podem exigir o uso do atributo storeEmptyNodes=.

Observação: só está disponível para esquemas de objeto de negócios e de serviço de negócios.
<schema emitEmptyGroups="true">
  <message type="group">
  ...
  </message>
</schema>
emitEmptyElements= "true"

Esse atributo é semelhante ao atributo emitEmptyGroups=, mas também pode ser especificado no nível do campo. O atributo é aplicável a todos os tipos de esquema.

<schema>
  <messageNumber type="field" emitEmptyElements="true">
  ...
  </message>
</schema>
adheresToDA= "lista separada por vírgulas de nomes de áreas de dados".

Esse atributo se aplica aos nós de esquema, grupo e lista. Alega que este nó de subesquema se destina a "aparecer" o esquema de uma das áreas de dados listadas, por razões de polimorfismo em geral.

Observação: A abordagem recomendada para impor a estrutura de uma área de dados compartilhada é incluindo-a no esquema. Esse atributo deve ser limitado a casos de uso em que a capacidade de incluir a área de dados não é possível.
<schema>
  <messageNumber type="group" adheresToDA="DataAreaName">
  ...
  </message>
</schema>

Constantes do Esquema

Em alguns esquemas do produto, o design garante um valor a ser padronizado, mas esse valor é específico da implementação e não pode ser definido pelo produto. Nessas situações, uma técnica chamada de constante do esquema pode ser utilizada pelo produto. O design do esquema incluirá uma constante declarada. No momento da implementação, uma tarefa de configuração incluirá a definição do valor apropriado para a constante.

Por exemplo, imagine que o produto contém um algoritmo que criará uma mensagem de saída quando determinada condição for atendida. O tipo de mensagem de saída a ser usado precisa ser configurado pela implementação. Para usar uma constante do esquema e definir o tipo de mensagem de saída, o produto-base vai configurar:

  • Um valor de consulta de tipo de opção para a consulta F1CN_​OPT_​TYP_​FLG será definido. Por exemplo, M202 - Tipo de Mensagem de Saída de Conclusão de Atividade, com Nome do Valor Java outmsgCompletion

  • O esquema-base usado para criar a mensagem de saída de "atividade concluída" referencia a constante do esquema por meio do Nome do Valor Java do valor de consulta do tipo de opção

    ...
    <outboundMessageType mapField="OUTMSG_TYPE_CD" default="%Constant(outmsgCompletion)"/>
    ...

No momento da implementação, os usuários administrativos precisarão configurar o tipo de mensagem de saída apropriado para "conclusão de atividade". Em seguida, acesse Configuração do Recurso, selecione o tipo de recurso Constantes do Esquema, selecione o tipo de opção Tipo de Mensagem de Saída de Conclusão de Atividade e informe o tipo de mensagem de saída recém-criado no valor da opção.

As constantes do esquema também podem ser usadas para definir a sintaxe de nivelamento dos elementos de linha necessários para o nivelamento.

Padronização e Variáveis do Sistema

O atributo padrão pode ser usado para padronizar valores em elementos de campo e nos elementos de linha necessários para o nivelamento. É possível padronizar um campo para uma constante ou para uma das diversas variáveis do sistema.

Quando um elemento é obrigatório, o valor padrão é aplicado no nível do servidor ao adicionar ou alterar o registro onde nenhum valor é fornecido para este elemento.

Quando um elemento é opcional, um valor padrão pode ser configurado para fornecer um valor sugerido ao usuário ao preencher o registro na interface do usuário no modo Adicionar. Os usuários devem ser capazes de remover o valor padrão desse tipo de elemento e o sistema não tentará preenchê-lo no momento do salvamento.

Observação:

O padrão para nossa manutenção de 'lista' é mostrar uma linha vazia para uma nova lista que um usuário pode ou não optar por preencher. Dessa forma, os valores padrão da interface do usuário não são mostrados para elementos de lista.

Não é recomendável configurar um atributo padrão para um elemento opcional que não seja editável ou visível na interface do usuário no modo Adicionar (por exemplo, um elemento com suppress="true" ou suppress="input" ou um elemento de lista cujo valor padrão não seja mostrado pelo ponto anterior). O padrão desse tipo de elemento ainda é aplicado, mas o usuário não pode redefinir o valor. Isso pode resultar em inconsistências, pois a padronização não ocorre para campos opcionais adicionados por um caso de uso diferente da interação da interface do usuário.

Mnemônico Valores Válidos Descrição Exemplos
default= "value" Use este atributo para padronizar um elemento para um valor especificado. Os valores válidos dependem da definição dataType.
<schema>
  <perType mapField="PER_OR_BUS_FLG" 
default="P" required="true"/>
</schema>
<schema>
  <frequency dataType="number" 
default="1" required="true"/>
</schema>
"%CurrentDate" Usado para padronizar o elemento para a data atual. Só se aplica a elementos de data.
<schema>
  <logDate mapField="LOG_DT" 
default="%CurrentDate" required="true"/>
</schema>
"%CurrentDateTime" Usado para padronizar o elemento para a data/hora atuais. Só se aplica a elementos de data/hora.
<schema>
  <logDateTime mapField="LOG_DTTM" 
default="%CurrentDateTime" 
required="true"/>
</schema>
"%StandardDateTime" Usado para padronizar a hora e a data padrão. A hora e a data padrão são idênticas às atuais, a menos que o horário de verão esteja em vigor no fuso horário-base. Pode ser usado com o atributo stdTime.
Observação: Para obter mais informações, consulte Considerações de Horário Padrão.
<schema>
  <startDateTime mapField="START_DTTM" 
default="%StandardDateTime" 
required="true"/>
</schema>
"%ProcessDate" É possível padronizar a data do processo. Essa data é diferente da atual porque permanecerá constante ao longo de toda a duração do processo em execução. A data atual refletirá a data real do processamento. É semelhante à data comercial do batch, que é um parâmetro batch padrão.
<schema>
  <billDate mapField="BILL_DT" 
default="%ProcessDate" 
required="true"/>
</schema>
"%ProcessDateTime" Semelhante a "%ProcessDate", mas para campos de data/hora.
<schema>
  <calcDateTime mapField="CALC_DTTM" 
default="%ProcessDateTime" 
required="true"/>
</schema>
"%CurrentUser" Usado para padronizar o elemento para o usuário atual.
<schema>
  <logUser mapField="LOG_USER" 
default="%CurrentUser" 
required="true"/>
</schema>
"%CurrentUserTimeZone" Usado para padronizar o elemento para o fuso horário do usuário atual. Se esse fuso horário não for encontrado, o fuso horário da instalação será usado.
<schema>
  <timeZone 
default="%CurrentUserTimeZone" 
required="true"/>
</schema>
"%CurrentUserLanguage" Usado para padronizar o elemento para o idioma do usuário atual.
<schema>
  <custLanguage mapField="CUST_LANG" 
default="%CurrentUserLanguage" 
required="true"/>
</schema>
"%InstallationCurrency" Usado para padronizar a moeda do registro de instalação.
<schema>
  <currency mapField="CURRENCY_CODE" 
default="%InstallationCurrency" 
required="true"/>
</schema>
"%InstallationCountry" É possível padronizar o país do registro de instalação.
<schema>
  <country mapField="COUNTRY" 
default="%InstallationCountry" 
required="true"/>
</schema>
"%InstallationLanguage" É possível padronizar o idioma do registro de instalação.
<schema>
  <language mapField="LANGUAGE" 
default="%InstallationLanguage" 
required="true"/>
</schema>
"%Constant( )" É possível usar uma constante do esquema para padronizar o valor de um elemento. Veja a seguir um exemplo de uma constante do esquema usada como valor padrão, em que o Nome do Valor Java do Valor de Consulta é 'customerLanguage'.
<language mapField="CUSTOMER_LANG" 
default="%Constant(customerLanguage)" 
required="true"/>
"%Context( )" É possível padronizar o valor contido em uma variável do contexto.
Aviso: as variáveis do contexto precisam ser inicializadas em um script do servidor antes da aplicação do padrão da constante do esquema. Para obter mais informações, consulte Variáveis do Contexto.
Um exemplo de variável do contexto usada como valor padrão:
<source mapField="PER_ID" 
default="%Context(source)" 
required="true"/>
Observação: Quando uma variável do contexto é definida no script, ela deve receber o prefixo $$. O prefixo não é incluído na referência à variável na sintaxe %Context( ).
defaultRef= "XPath"

Use este atributo para padronizar o valor de um elemento para o valor de outro.

Para obter a sintaxe compatível para referência a outros elementos, consulte Referenciando Outros Elementos.

Nós e Atributos de Nivelamento

O termo "nivelamento" é usado para descrever o ato de definir um ou mais elementos singulares de um esquema que na verdade fazem parte de uma lista do objeto de manutenção. O nivelamento é possível se houver outros atributos da lista que possam ser definidos para descrever de maneira exclusiva os elementos. Um caso de uso comum para o nivelamento é uma característica. Em vez de definir as características de um objeto por meio de uma coleta, em que o usuário precisa escolher o tipo de característica e depois definir o valor, as características são definidas como elementos reais, com o rótulo apropriado já exposto. Essa técnica permite ao designer do esquema e à interface do usuário exibir cada característica separada no local lógico da interface do usuário, em vez de todas juntas.

Observação: O elemento nivelado representa uma linha exclusiva no banco de dados. Essa linha é inserida quando os valores nivelados são criados. A linha é atualizada quando algum dos valores nivelados é alterado. A linha é excluída quando todos os valores nivelados são removidos. O comportamento de elementos com data efetiva é um pouco diferente. Consulte Nivelando uma Lista com Data Efetiva.
Observação: O recurso de nivelamento também pode ser usado para definir uma lista. Consulte Lista Nivelada.

Identificando a Lista ou Tabela-Filho

Ao nivelar uma tabela-filho, o nó da linha é necessário para identificar a lista/tabela-filho originária do elemento. Dentro do nó da linha, pelo menos um elemento precisa conter uma definição is= que garante que ele é uma linha exclusiva no banco de dados. Ele também pode definir elementos ou campos da linha suprimidos e preenchidos pela configuração de valor padrão.

  • Para os objetos de negócios, o nó da linha define a tabela-filho à qual o campo nivelado pertence.

    A sintaxe é <row mapChild="nome da tabela">. Este é um exemplo para a lista de pessoas em uma conta no Oracle Utilities Customer Care and Billing. Uma pessoa pode ser marcada como a "principal". Isso ilustra como definir um elemento explícito para o ID da pessoa principal e simplificar as referências àquele campo. Ele faz parte da tabela-filho CI_​ACCT_​PER. O que o torna exclusivo é que MAIN_​CUST_​SW é verdadeiro, e somente uma linha pode ter esse valor.

    <custId mapField="PER_ID" mdField="CM-MainCust">
      <row mapChild="CI_ACCT_PER">
        <MAIN_CUST_SW is="true" />
        <ACCT_REL_TYPE_CD default="MAIN" />
      </row>
    </custId>
    Observação: O exemplo acima ilustra que o nó da linha também pode definir elementos dentro da lista que foram suprimidos e receberam um valor padrão. Essa sintaxe nunca é usada para identificar uma linha. Note que o valor padrão pode ser uma string literal ou uma variável do sistema.
  • Para os serviços de negócios, o nó da linha identifica o nome da lista à qual o campo nivelado pertence.

    A sintaxe é <row mapList="nome da lista">. Este exemplo mostra duas entradas de uma lista sendo niveladas para um valor de campo e descrição.

    <selectList type="list" mapList="DE"> 
        <value mapField="COL_VALUE"> 
    <row mapList="DE_VAL"> 
              <SEQNO is="2"/> 
    </row> 
        </value>  
      <description mapField="COL_VALUE"> 
    <row mapList="DE_VAL"> 
            <SEQNO is="3"/> 
    </row> 
      </description> 
    </selectList>

Identificando de Maneira Exclusiva a Lista ou o Campo Nivelado

A sintaxe is= dentro de uma linha ou elemento rowFilter é usada para identificar exclusivamente a linha.

Mnemônico Valores Válidos Descrição Exemplos
is= "value" Use este atributo para referenciar um valor diretamente.
<tdTypeCd 
  mapField="CHAR_VAL_FK1">
  <row 
    mapChild="F1_EXT_LOOKUP_VAL_CHAR">
    <CHAR_TYPE_CD 
   is="CM-TD-TYPE"/>
  </row>
</tdTypeCd>
"%Constant( )" É possível usar uma constante do esquema para configurar um elemento nivelado. Durante a interação com um serviço, o valor da constante do esquema será usado para identificar o elemento nivelado na linha-filho dele.

Um exemplo de uma constante do esquema usada na sintaxe de nivelamento em que o Nome do Valor Java do valor do campo Consulta é 'cmRate'.

<unitRate mapField="CHAR_VAL" 
  dataType="number">
  <row mapChild=
   "F1_EXT_LOOKUP_VAL_CHAR">
    <CHAR_TYPE is
   ="%Constant(cmRate)"/>
  </row>
</unitRate>
"%n" O valor de substituição %n é usado para referenciar uma instância de lista relativa. A instância de lista relativa geralmente é usada para configurar um elemento nivelado de uma tabela-filho referenciado por número de sequência. O valor de n deve ser um valor inteiro positivo. Durante a interação de leitura de um objeto de negócios, a instância de lista relativa (posição) especificada pelo valor inteiro será retornada. Um exemplo com uma instância de lista relativa em que a primeira instância da linha é retornada.
<schema>
  <mainPhone mapField="PHONE">
    <row mapChild="CI_PER_PHONE">
      <PHONE_TYPE_CD 
      is="%Constant(mainPhoneType)"/>
      <SEQ_NUMis="%1"/>
    </row>
  </mainPhone>
</schema>
Acesso Rápido: valores adicionais de is= são usados para Nivelar uma Lista com Data Efetiva. Para obter mais informações, consulte a seção do link.

Nivelando um Tipo de Característica Predefinido

Se o campo nivelado estiver em uma coleta de característica e o tipo de característica for característica predefinida, a renderização automática da IU vai gerar uma lista suspensa de valores válidos. Por exemplo, o esquema a seguir vai gerar uma lista suspensa para o elemento Uso que mostra os valores válidos do tipo de característica Uso do Motivo do Status (F1-SRUSG).

<usage mdField="STATUS_RSN_USAGE" mapField="CHAR_VAL">
  <row mapChild="F1_BUS_OBJ_STATUS_RSN_CHAR">
      <CHAR_TYPE_CD is="F1-SRUSG"/>
      <SEQ_NUM is="1"/>
  </row>
</usage>

Definindo Vários Elementos da Lista

Ao tentar incluir várias colunas da mesma lista, o sistema informa uma notação abreviada para a cópia das regras de nivelamento definidas em outro elemento, de modo que essas regras não precisam ser repetidas. Para fazer isso, o nó da linha inclui o atributo rowRef, que indica o nome do outro elemento que define as informações de mapeamento. O exemplo a seguir ilustra o nivelamento dos campos ID do Cliente e Recebe Cópia da Fatura da mesma lista de Pessoas de uma Conta (em que o MAIN_​CUST_​SW é verdadeiro ).

<custId mapField="PER_ID">
  <row mapChild="CI_ACCT_PER">
      <MAIN_CUST_SW is="true" />
      <ACCT_REL_TYPE_CD default="MAIN" />
  </row>
</custId>
<copyBill mapField="RECEIVE_COPY_SW" rowRef="custId"/>

Note que a notação anterior também ilustra que rowRef pode ser definido diretamente na definição do atributo do elemento.

Observação: Para obter a sintaxe compatível para referência a outros elementos, consulte Referenciando Outros Elementos.

Nivelando com Duas Camadas de Profundidade

Se o objeto ou serviço de manutenção tiver listas aninhadas de duas camadas de profundidade, o sistema será compatível com o nivelamento de elementos dentro de um elemento nivelado. Essa técnica também usa o atributo rowRef. O nivelamento do segundo nível se refere ao elemento nivelado do primeiro nível. O exemplo a seguir ilustra o nivelamento de uma característica em um elemento chamado legalContact para o cliente "principal". Note que o elemento legalContact tem dois nós de linha: um para se referir às informações de nivelamento do registro-pai, e outro para definir a tabela-filho.

<custId mapField="PER_ID">
  <row mapChild="CI_ACCT_PER">
    <MAIN_CUST_SW is="true" />
    <ACCT_REL_TYPE_CD default="MAIN" />
  </row>
</custId>
<legalContact mapField="CHAR_VAL_FK1">
  <row rowRef="custId">
    <row mapChild="CI_ACCT_PER_CHAR" >
       <CHAR_TYPE_CD is="LEGAL" />
    </row>
  </row>
</legalContact>

Note que a notação anterior também ilustra que rowRef pode ser definido como atributo de um nó de linha, em vez de diretamente na definição do atributo do elemento.

Definindo uma Lista Nivelada

Em alguns momentos, uma lista ou tabela-filho tem suporte para vários valores do mesmo "tipo" que devem ser exibidos como uma lista. Para continuar com o exemplo anterior, a lista de pessoas de uma conta pode identificar uma pessoa como "principal". Essa pessoa foi nivelada para um só elemento, com o tipo de relacionamento entre contas padronizado e suprimido. Para atualizar as outras pessoas relacionadas à conta, é possível definir uma lista em que cada linha capture o ID da Pessoa e o Tipo de Relacionamento entre Contas.

Em vez de um nó de linha, a lista nivelada é configurada com um elemento rowFilter. O esquema a seguir ilustra o exemplo descrito. O nó da lista define a tabela-filho. O rowFilter inclui os critérios que identificam as linhas dentro da tabela a serem incluídas. Os elementos da lista são definidos dentro do nó da lista, fora do elemento rowFilter.

<custId mapField="PER_ID">
  <row mapChild="CI_ACCT_PER">
    <MAIN_CUST_SW is="true" />
    <ACCT_REL_TYPE_CD default="MAIN" />
  </row>
</custId>
<miscPersons type="list" mapChild="CI_ACCT_PER">
  <rowFilter>
    <MAIN_CUST_SW is="false" />
  </rowFilter>
  <relType mapField="ACCT_REL_TYPE_CD"/>
  <personId mapField="PER_ID"/>
</custId>

Note que o sistema validará que, se o esquema contém elementos únicos nivelados e listas niveladas da mesma tabela-filho, o critério que define o que os torna exclusivos deve ser análogo.

Nivelando uma Lista com Data Efetiva

Algumas listas do aplicativo têm data efetiva, e outras têm data e hora efetivas. Por exemplo, algumas coletas de característica têm data e hora efetivas. Nelas, o design é capturar um valor para um tipo de característica que pode ser alterado com o tempo. O objetivo não é dar suporte a vários valores de característica em efeito ao mesmo tempo.

Há alguns objetos de manutenção que têm características com data efetiva e nenhuma característica baseada em sequência. Para essas entidades, as implementações podem usar a característica para definir um campo adicional que não exija datas efetivas.

Ao considerar a criação de um elemento para seu esquema que representa um valor em uma coleção com data efetiva, considere se o valor é aquele usado em processos, como o cálculo de uma fatura, de forma que seja importante capturar alterações no valor ao longo do tempo.

  • Se não for importante rastrear as alterações no valor, a recomendação é definir a data efetiva como um valor fixo no esquema. (Exemplos a seguir).
  • Se for importante rastrear as alterações no valor, considere como deseja projetar o esquema.
    • Uma opção é definir uma lista nivelada, conforme descrito acima. Tanto o valor quanto a data efetiva são elementos nessa lista. Neste caso de uso, você gerencia a lista como qualquer outra lista. É possível adicionar ou remover valores.
    • Outra opção é definir um único valor nivelado no esquema. Com essa opção, ao recuperar o registro, o valor efetivo mais recente é retornado. Nesse design, a questão importante é a forma como é a data de referência definida.
Observação: Para obter a sintaxe compatível para referência a outros elementos, consulte Referenciando Outros Elementos.

Elementos Nivelados em que as Alterações não são Rastreadas

Veja a seguir um exemplo de nivelamento de um elemento em uma coleção com data efetiva em que o valor não precisa ter data efetiva. A recomendação nesse caso é simplesmente embutir o código da data no atributo is=.

<schema>
  <externalReference mapField="ADHOC_CHAR_VAL" mdField="CM_EXT_REF" dataType="string">
    <row mapChild="CI_SA_CHAR">
      <CHAR_TYPE is="CM_EXT_REF"/>
      <EFFDT is="2000-01-01"/>
    </row>
  </externalReference>
</schema>

Elementos Nivelados em que as Alterações têm a Data Efetivada

Se você quiser que o esquema do Objeto de Negócios nivele um valor com data efetiva que deve rastrear as alterações ao longo do tempo, o valor nivelado representará a entrada efetiva mais recente. Nesse caso, a recomendação é definir explicitamente o campo de data ou de data/hora como um elemento. Em seguida, há sintaxe para o atributo is= para indicar que o campo data explícita é a data a ser usada para o valor.

Mnemônico Valores Válidos Descrição Exemplos
is= "%effectiveDate( )" Use esta configuração para indicar que a data a ser usada é o valor de outro elemento.
Observação: Para obter a sintaxe compatível para referência a outros elementos, consulte Referenciando Outros Elementos.
<schema>
  <price mapField="CHAR_VAL" 
   dataType="number" required="true">
    <row mapChild="CI_SA_CHAR">
      <CHAR_TYPE is="PRICE"/>
      <EFFDT 
   is="%effectiveDate(priceEdate)" />
    </row>
  </price>
<priceEdate mapField="EFFDT" 
  rowRef="price"/>
</schema>
"%effectiveDateTime( )" Use esta configuração para indicar que a data/hora a ser usada é o valor de outro elemento.
Observação: Para obter a sintaxe compatível para referência a outros elementos, consulte Referenciando Outros Elementos.
<schema>
  <price mapField="CHAR_VAL" 
  dataType="number">
    <row mapChild="RATE_CHAR">
      <CHAR_TYPE is="PRICE"/>
      <EFFDTTM 
  is="%effectiveDateTime(priceEdatetime)"/>
    </row>
  </price>
  <priceEdatetime mapField="EFFDTTM" 
  rowRef="price"/>
</schema>

Considere se o elemento de data ou data/hora explícita deve ser exibido na interface do usuário quando o campo nivelado é mostrado ou se deve ser suprimido. Os designers também devem considerar a caixa de diálogo do usuário para atualizar o valor. Isso pode ser mais intuitivo para que o campo nivelado seja somente exibição e que tenha uma caixa de diálogo separada para atualizar o valor com data efetiva.

Para essa opção, a sugestão é que a página de manutenção do objeto inclua uma zona separada que mostre o histórico dos valores com data efetiva ao longo do tempo. O valor mais recente também pode ser incluído nessa zona.

Observe que, para compatibilidade retroativa, o sistema também suporta as opções a seguir. No entanto, elas não são recomendadas. Elas definiram implicitamente a data de referência como a data atual em todos os momentos. As opções suportaram a adição de novas linhas com data efetiva quando o valor foi alterado. Mas a técnica também fez com que fossem exibidas novas linhas com data efetiva quando outros elementos do mesmo esquema foram atualizados. As novas linhas teriam a data ou a data/hora atual com o mesmo valor de linha porque a data ou a data/hora de referência é a data atual, o que é uma alteração. O produto não recomenda gerenciar uma característica com data efetiva sem definir a data ou a data/hora como um elemento explícito.

Mnemônico Valores Válidos Descrição Exemplos
is= "%effectiveDate"

Esta configuração não é recomendada

<schema>
  <price mapField="CHAR_VAL" 
  dataType="number">
    <row 
  mapChild="CI_SA_CHAR">
      <CHAR_TYPE is="PRICE"/>
      <EFFDT
   is="%effectiveDate"/>
    </row>
  </price>
</schema>
"%effectiveDateTime"

Esta configuração não é recomendada

<schema>
  <price mapField="CHAR_VAL" 
   dataType="number">
    <row mapChild="RATE_CHAR">
      <CHAR_TYPE is="PRICE"/>
      <EFFDT 
    is="%effectiveDateTime" />
    </row>
  </price>
</schema>

Zona de Pesquisa

Um elemento do esquema do Mapa da IU pode ser configurado para ativar uma caixa de diálogo de pesquisa automática quando o esquema é incluído em um mapa da IU de manutenção.

Observação: Note que uma fkRef pode ser configurada com uma zona de pesquisa. Se um elemento do esquema tiver fkRef, mas nenhum atributo de pesquisa explícito, conforme descrito aqui, as informações de pesquisa de fkRef serão usadas no mapa da IU. Em outras palavras, se o elemento do esquema já tiver um fkRef, esses atributos de pesquisa explícitos do esquema só são usados para substituir as informações de pesquisa de fkRef.
Observação: Para obter mais informações sobre a configuração da zona de pesquisa, consulte Funções e Atributos do Mapa da IU.

search="search zone"

O atributo search pode ser usado no esquema do mapa da IU para gerar automaticamente o atributo do mapa da IU oraSearch. A zona de pesquisa é uma zona do explorador configurada como pesquisa.

<person fkRef="PER" search="C1_PSRCH"/>

searchField="search field:element|'literal';"

O atributo searchField só pode ser usado em conjunto com o atributo search. O atributo searchField é usado para gerar o atributo do mapa da IU oraSearchField. O valor de searchField é usado para preencher um filtro de zona de pesquisa com um valor inicial quando a zona é iniciada. O valor inicial também pode ser literal. O valor de searchField é usado para corresponder o mnemônico de filtro também chamado searchField.

Campo de pesquisa: element|'literal'. O campo de pesquisa representa o filtro da zona de pesquisa a ser preenchido na inicialização. O elemento é o elemento do esquema do mapa usado para preencher o filtro. O elemento é opcional. Se deixado em branco, usará como padrão o elemento no qual este atributo está especificado. searchField também aceita 'literal' como valor de entrada

Observação: Vários filtros podem ser preenchidos dentro da zona de pesquisa na inicialização, mas vários pares de campo de pesquisa precisam ser gerados dentro do valor do atributo. O valor especificado aqui será usado para gerar diretamente o atributo HTML oraSearchField dentro do mapa da IU em que esse esquema está especificado.
Observação: Note que a referência do elemento é relativa. Para obter a sintaxe compatível para referência a outros elementos, consulte Referenciando Outros Elementos.
<person fkRef="PER" search="C1_PSRCH" searchField="PERSON; PER_TYPE:personType;"/>

searchOut="search field:element;"

O atributo searchOut só pode ser usado em conjunto com o atributo search. O atributo searchOut é usado para gerar o atributo do mapa da IU oraSearchOut. O valor de searchOut é usado para capturar um valor selecionado da zona de pesquisa e movê-lo para um elemento do mapa da IU. O valor de searchOut especificado deverá corresponder ao mnemônico ELEMENT_​NAME dentro do parâmetro da zona de resultados da pesquisa.

Campo de pesquisa: element. O campo de pesquisa representa o resultado da zona de pesquisa trazido de volta para o mapa da IU. O elemento é o elemento do esquema do mapa a ser preenchido. O elemento é opcional. Se deixado em branco, usará como padrão o elemento no qual este atributo está especificado.

Observação: Vários elementos podem ser preenchidos como resultado da seleção da zona de pesquisa, mas vários pares de campo de pesquisa precisam ser gerados dentro do valor do atributo. O valor especificado aqui será usado para gerar diretamente o atributo HTML oraSearchOut dentro do mapa da IU em que esse esquema está especificado.
Observação: Note que a referência do elemento é relativa. Para obter a sintaxe compatível para referência a outros elementos, consulte Referenciando Outros Elementos.
<person fkRef="PER" search="C1_PSRCH" searchField="PER_ID" 
searchOut="PER_ID;PRIMARY_PHONE:personPhone;"/>

Estender Segurança para Script de Serviço

A segurança do serviço do aplicativo será reforçada quando um objeto de negócios ou script de serviço for chamado de um script de BPA ou mapa da IU, mas não de um script de serviço. Caso deseje que a segurança seja reforçada quando o objeto de negócios ou script de serviço for chamado de um script de serviço, será necessário adicionar o atributo a seguir ao esquema do script de serviço.

appSecurity="true"

O atributo appSecurity só está disponível para esquemas do script de serviço. Se ele for especificado, qualquer objeto de negócios ou script de serviço chamado diretamente pelo script de serviço terá o serviço do aplicativo avaliado para acesso.

<schema appSecurity="true">
  ...
</schema>

Substituindo a Ação de um Serviço de Negócios

Se você deseja chamar um serviço de negócios com uma ação diferente de 'ler', será necessário especificar o atributo da ação no nó primário do esquema do serviço de negócios.

pageAction="add, change, delete"

O atributo de ação é usado para substituir a ação padrão de leitura em um esquema do serviço de negócios. Os valores válidos são:

  • add (adicionar)

  • update (atualizar, permitido somente para serviço do objeto de manutenção)

  • change (alterar, não permitido para serviço do objeto de manutenção)

  • delete (excluir)

  • read (ler; esta é a ação padrão se pageAction não for especificado)

Exemplo:

<schema pageAction="change">
  <parm type="group">
    <ele1/>
    <ele2/>
  </parm>
</schema>

Especificando searchBy para um Serviço de Pesquisa

Se você deseja chamar um serviço de pesquisa, precisa especificar explicitamente o atributo searchBy apropriado para os elementos mapeados no esquema.

searchBy="MAIN"

Os valores do atributo searchBy podem ser encontrados na visualização do esquema XML vinculado ao serviço de negócios. Use Visualizar URL do XML. Os valores típicos são:

  • MAIN

  • ALT

  • ALT2

  • ALT3

  • etc.
<schema searchBy="MAIN">
  <AccountID mapField="ACCT_ID"/>
  <Results type="list">
    <AccountID mapField="ACCT_ID"/>
  </Results>
</schema>

Incluindo Outros Esquemas

Não há limitações para a capacidade de incluir um esquema em outro. Todos os tipos podem ser incluídos em todos os outros tipos. Inclusões aninhadas também são permitidas e, no momento, não há limitação para a profundidade do aninhamento.

A inclusão de um esquema exige duas partes:

  1. O nó de inclusão
  2. O atributo do nome

A tabela a seguir destaca as instruções de inclusão compatíveis.

Mnemônico Descrição Exemplos

<includeBO name=" "/>

A inclusão de um esquema de objeto de negócios em outro esquema é permitida.

Note que as regras de mapeamento de um esquema de objeto de negócios ou serviço de negócios podem ou não fazer sentido no contexto do esquema-pai. Inclua outros esquemas por sua conta e risco. No entanto, um aspecto muito útil do processamento de XML é que a estrutura ignora os atributos não pertinentes. Em outras palavras, ter atributos de mapeamento incluídos em um esquema de script não vai prejudicar.

<schema>
  <cust type="group">
<includeBO name="C1-Person"/>
</cust>
  <spouse type="group">
<includeBO name="C1-Person"/>
</spouse>
</schema>

<includeBS name=" "/>

Usado para incluir um esquema de serviço de negócios.

<schema>
<includeBS name="F1-ReadMOLog"/>
</schema>

<includeDA name=" "/>

Usado para incluir um esquema de área de dados.

<schema>
<includeDA 
   name="F1CommonSchemaFieldData"/>
</schema>

<includeMP name=" "/>

Usado para incluir um esquema de mapa da IU.

<schema>
<includeMP 
   name="F1-DisplayRecordActions"/>
</schema>

<includeSS name=" "/>

Usado para incluir um esquema de script de serviço.

<schema>
<includeSS name="F1-ActShowZn"/>
</schema>

Atributos de Compatibilidade

Esses atributos foram adicionados como parte das atualizações de versões anteriores da Estrutura.

fwRel="2"

Este atributo foi adicionado aos esquemas criados na Estrutura 2 como parte de uma atualização da Estrutura 4. Novos esquemas não precisarão desse atributo. Não é recomendado modificar esse atributo sem compreender as seguintes diferenças de comportamento, pois mudanças inadequadas podem causar erros:

Observação: Esquemas criados no Framework 2 com o atributo fwRel="2" armazenarão quaisquer campos mapeados para XML em grupos como elementos de XML de nível superior no campo mapXML. Isso significa que, se dois ou mais campos em estruturas de grupo diferentes tiverem o mesmo nome de campo, o armazenamento deles entrará em conflito, o que causará erros. O novo comportamento sem o atributo fwRel="2" preserva a estrutura do grupo e evita os conflitos.
<schema fwRel="2"
    ...
</schema>