Sintaxe da Dica da Interface do Usuário
Exemplos Práticos
Para exemplos práticos da funcionalidade uiHint, consulte os seguintes objetos de negócios:
Objetos de Negócios com Chaves Atribuídas pelo Usuário
Os exemplos a seguir ilustram os padrões usados para ativar dicas de IU em um objeto com chave especificada pelo usuário.
- F1-OutcomeStyleLookup. Este objeto de negócios de busca extensível não requer transição de status, mas permite as ações de duplicar e excluir.
- F1-TodoSumEmailTyp. Este tipo de solicitação ilustra as dicas necessárias para dar suporte à transição de status em um mapa de exibição.
- F1-WebSvc. Este objeto de negócios de serviço Web é um bom exemplo do gerenciamento de requisitos JavaScript complexos. Tanto os mapas de entrada quanto os de exibição têm funcionalidade que requer javascript especializado.
Objeto de Negócios com Chave Gerada pelo Sistema
O exemplo a seguir mostra o padrão usado para ativar dicas de IU em um objeto com chave gerada pelo sistema.
-
F1-GenericAttachment. Este objeto de negócios de anexo tem chave atribuída pelo sistema, o que implica o seguinte tratamento especial:
- F1-AttachmentMain. Esta área de dados de seção principal contém os elementos comuns a todos os anexos, inclusive chave, objeto de negócios e versão. Como essa área de dados é usada para definir a seção principal dos mapas gerados, a seção principal do mapa pode ser estendida pela implementação por meio de uma funcionalidade de extensão da área de dados.
- F1-AttachmentActions. Este mapa de ações do registro contém as ações padrão Editar e Excluir e ações personalizadas usadas somente por anexos, Visualizar e Fazer Upload.
- F1-AttachmentIDFrag. Este mapa de informações do registro contém a chave primária do anexo.
Script de Serviço do Mapa de Exibição
Os scripts de serviço do mapa de exibição podem ter suporte completo por meio da geração de HTML dinâmico. No entanto, para ajudar a eliminar a necessidade de um script de serviço de exibição, a funcionalidade de uiHint autocontida foi desenvolvida para gravar o status do objeto de negócios e determinar as transições de status válidas. Portanto, os dois principais motivos para a elaboração de um script de serviço de exibição foram eliminados.
Um motivo típico para o uso de um pré-script de exibição é quando há um fragmento de mapa incorporado que contém um esquema de serviço de negócios. O script de serviço de exibição pode ser usado para chamar o serviço de negócios. Tanto o fragmento do mapa quando o script de serviço de exibição precisam declarar o esquema do serviço de negócios para ter suporte para esse cenário.
- F1-ExcelSpreadsheet. Este objeto de negócios de anexo tem um script de serviço de exibição usado para manipular o objeto de negócios de anexo antes de exibi-lo:
- F1-AttchDtlU. Este esquema do script de serviço do mapa de exibição foi definido com o namespace uiHint e terá um mapa de exibição gerado para ele.
Script de Serviço de Pré-Processamento de Manutenção
Os scripts de serviço de pré-processamento de manutenção podem ser usados com dicas de IU.
- F1-ExcelSpreadsheet. Este objeto de negócios de anexo tem um script de serviço de pré-processamento de manutenção usado para manipular o objeto de negócios de anexo antes de renderizar o mapa de manutenção:
- F1-AttchPre. Este esquema de script de serviço de pré-processamento imita um esquema de mapa de manutenção com boGroup e elementos de ação incorporados. Ele será chamado antes da renderização do mapa de manutenção.
Script de Serviço de Pós-Processamento de Manutenção
Os scripts de serviço de pós-processamento de manutenção podem ser usados com dicas de IU.
- F1-ExcelSpreadsheet. Este objeto de negócios de anexo tem um script de serviço de pós-processamento de manutenção usado para manipular o objeto de negócios de anexo após renderizar o mapa de manutenção:
- F1-AttchPost. Este esquema de script de serviço de pós-processamento imita um esquema de mapa de manutenção com boGroup e elementos de ação incorporados. Ele será chamado após a renderização do mapa de manutenção.
Observações Técnicas
Os pré-requisitos a seguir são obrigatórios para o suporte à geração de HTML dinâmico:
Requisitos do Esquema
Para o suporte à geração de IU automática, o esquema do objeto de negócios precisa conter:
- <schema xmlns:uiHint="http://oracle.com/ouafUIHints">. O nó do esquema deve nomear o namespace uiHint.
- isPrimeKey="true". Todo elemento do esquema do objeto de negócios que for parte da chave primária precisa ser identificado.
Requisitos do Script de Manutenção
O script de manutenção do objeto de manutenção precisa estar ativado para a geração dinâmica.
Se o script realizar F1-BOProc, é provável que nenhuma funcionalidade especial seja necessária. No entanto, se o script de manutenção contiver a própria chamada para F1-GetValOpt, a seguinte instrução será necessária antes dessa chamada:
move 'false' to "F1-GetBOOpts/input/maintenanceMapRequired";
performScript 'F1-GetValOpt';
Após a chamada para F1-GetValOpt, a seguinte lógica deverá ser incluída para declarar dinamicamente o esquema do mapa se o objeto de negócios não tiver o próprio mapa de manutenção:
// Perform Main Processing
if ("F1-GetBOOpts/output/maintenanceMap = $BLANK")
declareBOWithBOGroup "$bo" as 'map_schema';
else
declareMap "F1-GetBOOpts/output/maintenanceMap" as 'map_schema';
end-if;
Formatar um Título de Mapa de Entrada
Um elemento uiHint pode ser usado para gerar um título para um mapa de manutenção. O título só será impresso no mapa de manutenção, não no mapa de exibição. Ele será impresso como a primeira linha do mapa, centralizado, com um estilo de cabeçalho.
Sintaxe | Descrição | Exemplos |
---|---|---|
<uiHint:title mdField=" "/> |
Exibe o rótulo de um campo de metadados especificado como título. |
|
<uiHint:title text=" "/> |
Exibe o texto indicado como título. Não use este mecanismo quando houver suporte para vários idiomas. |
|
Criar uma Seção
O namespace de uiHint é compatível com a definição de uma seção do mapa da IU. Note que as seções atualmente são criadas em Mapas da IU gerados quando o esquema tem um grupo ou nó de lista com rótulo ou mdField. A funcionalidade descrita aqui permite a criação de uma seção sem a necessidade de um grupo rotulado ou nó de lista dentro do esquema. Cada seção precisa ser cercada por um par de elementos startSection e endSection.
Sintaxe | Atributos de Suporte | Descrição |
---|---|---|
<uiHint:startSection .../> |
sectionColumn="left | right | fullWidth | float" |
O padrão é que a seção terá a largura total nos mapas de exibição. Para substituir essa definição, especifique se deseja que uma seção de meia largura seja exibida na coluna da esquerda (left) ou da direita (right), ou ainda flutuante (float). As seções marcadas como flutuantes serão exibidas com meia largura e estarão alinhadas de acordo com a exibição ou ocultação condicional das seções anteriores. Por exemplo, se uma seção alinhada à esquerda for seguida por uma seção flutuante, esta será exibida na coluna da direita se a seção da esquerda estiver preenchida, ou na coluna da esquerda se a seção da esquerda estiver minimizada/oculta. |
editColumn="left | right | fullWidth | float" |
Por padrão, a seção é exibida com largura total nos mapas de manutenção. Para substituir essa definição, especifique se deseja que uma seção de meia largura seja exibida na coluna da esquerda (left) ou da direita (right), ou ainda flutuante (float). O comportamento é análogo ao de sectionColumn. | |
sectionOpen="false" |
Por padrão, a seção está aberta na exibição inicial. Especifique este atributo para exibir a seção inicialmente como fechada (minimizada). | |
mdField=" " |
Especifique o nome de um campo de metadados cujo rótulo deve ser usado como cabeçalho da seção. | |
label=" " |
Especifique o texto explícito a ser usado como cabeçalho da seção. | |
visibleOn="displayMap | inputMap" |
Por padrão, a seção é exibida nos mapas de entrada e de exibição. Use este atributo para limitar a exibição da seção ao mapa de exibição (displayMap) ou ao mapa de entrada (inputMap). |
A sintaxe do atributo de fim de seção é <uiHint:endSection/>
Exemplos:
<schema xmlns:uiHint="http://oracle.com/ouafUIHints">
<uiHint:startSection label="Main" sectionColumn="left"/>
...
<uiHint:endSection/>
</schema>
<schema xmlns:uiHint="http://oracle.com/ouafUIHints">
<uiHint:startSection mdField="F1-ADD-INFO" sectionColumn="fullWidth" editColumn="float" sectionOpen="false" visibleOn="displayMap"/>
...
<uiHint:endSection/>
</schema>
Incluir um Fragmento de Mapa
É possível especificar um fragmento de mapa da IU para injetar HTML em um mapa gerado por meio do nome de elemento includeMap. Assim, você terá suporte a comportamentos mais sofisticados na interface do usuário. Para qualquer elemento incluso para renderização no fragmento do mapa, suprima o elemento na definição do esquema dele. Caso contrário, o HTML será gerado automaticamente para o elemento.
Sintaxe | Atributos de Suporte | Descrição |
---|---|---|
<uiHint:includeMap .../> |
map=" " |
Especifique o nome do mapa. |
visibleOn="displayMap | inputMap" |
Por padrão, os detalhes do fragmento do mapa são exibidos nos mapas de exibição e entrada. Use este atributo para limitar a exibição da seção. |
Exemplo:
<schema xmlns:uiHint="http://oracle.com/ouafUIHints">
...
<uiHint:includeMap map="StandardActionButtons" visibleOn="displayMap"/>
...
</schema>
Se o JavaScript for necessário dentro de um fragmento de Mapa da IU em XHTML, será preciso colocá-lo dentro de uma tag ![CDATA[ ]] para garantir um documento XML válido. Note que as tags em si podem precisar de comentários para promover a compatibilidade com navegadores mais antigos. Por exemplo:
<script type="text/javascript">
/* <![CDATA[ */
//
//javascript
//
/* ]]> */
</script>
Limpar o cache: por motivos de desempenho, a Estrutura armazena automaticamente em cache os esquemas de objetos de negócios, as áreas de dados e os mapas da IU. Quando você atualiza um objeto de negócios, o cache é limpo automaticamente. No entanto, se o objeto de negócios incluir uma área de dados ou um fragmento de mapa da IU incorporado, o cache precisará ser limpo manualmente para que as alterações sejam reconhecidas. Para obter mais informações, consulte Cache do Servidor.
Gerar Lista Suspensa
Há sintaxe para a geração de uma lista suspensa em um mapa de edição. A lista pode ser gerada com dados retornados de um script de serviço, serviço de negócios ou tabela.
Sintaxe | Descrição |
---|---|
uiHint:select="ss: " |
Especifique o nome do script de serviço após os dois pontos. |
uiHint:select="bs: " |
Especifique o nome do serviço de negócios após os dois pontos. |
uiHint:select="table: " |
Especifique o nome da tabela após os dois pontos. |
Durante a especificação de um script de serviço ou serviço de negócios, são necessárias informações de mapeamento extras para transmitir os dados de e para o serviço.
Sintaxe | Valores | Descrição |
---|---|---|
uiHint:selectIn=" " |
serviceXPath:element | Usado para transmitir o valor de outro elemento ao serviço, mapeando para o XPath do serviço. |
serviceXPath:'Literal' | Usado para transmitir uma constante ou literal ao serviço, mapeando para o XPath do serviço. | |
uiHint:selectOut="valuePath: ; descPath: " |
Veja os exemplos a seguir. | Usado para indicar qual elemento da saída do serviço contém os valores, e qual contém as descrições. |
Exemplos:
<schema xmlns:uiHint="http://oracle.com/ouafUIHints">
<boStatus mapField="BO_STATUS_CD" uiHint:select="bs:F1-BOStateReasonList"
uiHint:selectIn="boStatusBO:boStatusBO" uiHint:selectOut="valuePath:results/status;
descPath:results/description"/>
...
<algorithm mdField="ALG_CD" uiHint:select="bs:F1-RetrieveSysEvtAlgorithms"
uiHint:selectIn="algorithmEntity:'F1AA';" uiHint:selectOut="valuePath:results/algorithm;
descPath:results/description"/>
...
<outboundMsgType mdField="OUTMSG_TYPE_CD" required="true" fkRef="F1-OMTYP" uiHint:select="table:F1_OUTMSG_TYPE"/>
</schema>
Ocultar Elementos Condicionalmente
O atributo displayNone é usado para suprimir elementos do mapa com base em condições.
Sintaxe | Valores | Descrição |
---|---|---|
uiHint:displayNone= |
"'XPath','value','!=' | '='" | Usado para ocultar condicionalmente este elemento com base no valor de outro elemento, referenciado pelo XPath. Informe um valor de ' ' para interrogar um valor em branco. Por padrão, o operador é '='. Ele pode ser substituído por '!='. |
"function name, true | false" | Usado para indicar uma função JavaScript, que deve retornar um Booliano. |
Não há suporte para espaços incorporados nos valores de string separados por vírgulas deste atributo.
Essa definição pode ser usada em nós de grupo, nós de lista e elementos, exceto os elementos dentro de uma lista. Os elementos de uma lista não podem ser ocultados condicionalmente.
O exemplo a seguir ilustra dois elementos (referência da moeda e consulta) que serão exibidos ou ocultos com base no valor do elemento do tipo de dados. Note que o exemplo também ilustra Comportamento Dependente de Disparador, pois o valor do elemento do tipo de dados pode ser alterado. Se isso acontecer, a condição para o ocultamento dos elementos subsequentes terá que ser reavaliada.
<schema xmlns:uiHint="http://oracle.com/ouafUIHints">
...
<dataType mdField="F1_SE_DATA_TYPE" dataType="lookup" lookup="F1_SE_DATA_TYPE"
uiHint:dependents="currencyRef;lookup; "/>
<currencyRef mdField="F1_SE_CURR_REF_LBL" uiHint:displayNone="'dataType','F1MO','!='"/>
<lookup mdField="F1_SE_LOOKUP_LBL" fkRef="F1-LKUPF" uiHint:displayNone="'dataType','F1LP','!='"/>
...
</schema>
O exemplo a seguir ilustra a referência a uma função que recebe parâmetros:
<uiHint:startSection mdField="F1_SE_DEFAULT_SECT"
uiHint:displayNone="isApplicableForSchemaType(item,'F1MP'),true"/>
Proteger Elementos Condicionalmente
O atributo protect é usado para proteger elementos do mapa com base em outros fatores.
Sintaxe | Valores | Descrição |
---|---|---|
uiHint:protect= |
"'XPath','value','!=' | '='" | Usado para proteger condicionalmente este elemento com base no valor de outro elemento, referenciado pelo XPath. Informe um valor de ' ' para interrogar um valor em branco. Por padrão, o operador é '='. Ele pode ser substituído por '!='. |
"function name, true | false" | Usado para indicar uma função JavaScript, que deve retornar um Booliano. | |
"'action','A' | 'C','!=' | '='" |
Use a definição 'action' para proteger o elemento com base na ação atual. Por exemplo, alguns elementos só podem ser especificados quando um registro é adicionado. Quaisquer alterações subsequentes no registro devem proteger o elemento de alterações. Ao usar esta opção, os valores válidos para 'value' são A (adicionar) e C (alterar). |
Não há suporte para espaços incorporados nos valores de string separados por vírgulas deste atributo.
A Dica da IU protect pode ser usada em nós de grupo, nós de lista e elementos, exceto os elementos dentro de uma lista. Os elementos de uma lista não podem ser protegidos condicionalmente.
A Dica da IU a seguir protegerá a categoria de estatísticas quando a ação for 'C'.
<schema xmlns:uiHint="http://oracle.com/ouafUIHints">
...
<statisticsCategory dataType="lookup" mapField="STAT_CATEGORY_FLG"
lookup="STAT_CATEGORY_FLG" uiHint:protect="'action','C','='"/>
...
</schema>
Comportamento Dependente de Disparador
O atributo dependents é usado para disparar comportamentos em um elemento-filho quando um elemento-pai é alterado.
Sintaxe | Valores |
---|---|
uiHint:dependents=" " |
Uma lista de um ou mais elementos dependentes separados por ponto e vírgula. |
O exemplo a seguir ilustra que a lista suspensa de um elemento é orientada pelo valor de outro elemento. Neste exemplo, quando o País é alterado, a lista de Estados para seleção também deve ser alterada para mostrar apenas os estados do país indicado.
<schema xmlns:uiHint="http://oracle.com/ouafUIHints">
<country label="Country" uiHint:select="table:CI_COUNTRY" uiHint:dependents="state"/>
<state label="State" uiHint:select="ss:CM-RetrieveCountryStates"
uiHint:selectIn="input/country:country;" uiHint:selectOut="valuePath:output/state/stateCode;
descPath:output/state/stateDesc"/>
...
</schema>
Alvos dependentes só podem nomear elementos, não nós de grupo ou lista.
Não modifique o valor do atributo "id" dos elementos pai e dependente. O preenchimento dos dados no atributo dependente é realizado com base no valor do atributo "id".
Controlar Alvo da Renderização
Por padrão, todos os elementos não suprimidos ficam visíveis nos mapas de entrada e de exibição. Use o atributo visibleOn para limitar a inclusão de um elemento somente para o mapa de entrada ou de exibição.
Sintaxe | Valores |
---|---|
uiHint:visibleOn= |
"displayMap" |
"inputMap" |
<schema xmlns:uiHint="http://oracle.com/ouafUIHints">
...
<uiHint:includeMap map="StandardActionButtons" visibleOn="displayMap"
...
</schema>
Gerar Área de Texto
Por padrão, uma área de texto padrão é renderizada no mapa de entrada para qualquer elemento de string. Se o campo for maior e você desejar ter uma área de texto maior com barra de rolagem, use o atributo textArea.
Sintaxe |
---|
uiHint:textArea="true" |
<schema xmlns:uiHint="http://oracle.com/ouafUIHints">
...
<message label="Message" uiHint:textArea="true"/>
...
</schema>
Modificar Padrões da Referência de Chave Externa
Por padrão, quando um elemento com fkRef é exibido, uma string de informações, o menu contexto, a navegação e a pesquisa são ativadas (se a referência da chave externa estiver configurada de acordo). A sintaxe é fornecida para permitir a desativação seletiva de qualquer um desses recursos.
Sintaxe |
---|
uiHint:fkRef="info:false;context:false;navigation:false;search:false;" |
Somente o recurso que você deseja desativar precisa ser especificado. O exemplo a seguir ilustra a desativação da capacidade de navegação, o que significa que o texto não será renderizado como hipertexto.
<schema xmlns:uiHint="http://oracle.com/ouafUIHints">
...
<attachmentID fkRef="F1-ATTCH" primeKey="true" suppress="input" uiHint:fkRef="navigation:false;"/>
...
</schema>
Suprimir Formatação Automática de Números
Por padrão, os campos numéricos (dataType="number") são formatados como números. Um atributo é fornecido para aplicar a formatação alfanumérica em vez de numérica.
Observação: Se dataType não estiver explicitamente especificado, ele será derivado de mdField ou mapField.
Sintaxe |
---|
uiHint:alphaFormat="true|false" |
Por padrão, o valor é false e, portanto, pode ser deixado de fora.
Exemplos:
<schema xmlns:uiHint="http://oracle.com/ouafUIHints">
...
<numberCount mdField="" dataType="number" uiHint:alphaFormat="true"/>
...
</schema>
Colocar Automaticamente os Dados de Entrada em Maiúsculas
O uiHint tem sintaxe para colocar os dados de entrada em letras maiúsculas automaticamente.
Sintaxe |
---|
uiHint:capitalize="true|false" |
Por padrão, o valor é false e, portanto, pode ser deixado de fora.
<schema xmlns:uiHint="http://oracle.com/ouafUIHints">
<toDoTypeCd mdField="TD_TYPE_CD" uiHint:capitalize='true' isPrimeKey="true"/>
</schema>
O atributo só está disponível no designer do esquema quando isPrimeKey está definido como verdadeiro. O atributo pode ser adicionado a qualquer elemento de linha quando o visualizador da origem é usado.
Substituir Cabeçalho de Linha para Fins de Acessibilidade
Ao gerar o HTML para uma lista, o padrão é atribuir scope="row" aos elementos de chave primária não suprimidos, se houver, ou ao primeiro elemento não suprimido da lista. Esta dica de IU fornece sintaxe para substituir os padrões quando eles não são os elementos apropriados a serem usados por um leitor de tela.
Sintaxe |
---|
uiHint:rowHeader="true|false" |
<iwsAnnotationTypeParameter mdField="F1_ANN_TYPE_PARMS_LBL" type="list" mapChild="F1_IWS_ANN_TYPE_PARM">
<sequence dataType="number" mapField="SEQ_NUM" uiHint:rowHeader="false"/>
<parameterName mapField="PARM_NAME" uiHint:rowHeader="true" dataType="string"/>
<parameterValue mapField="PARM_VALUE" dataType="string"/>
<isRequired dataType="lookupBO" mapField="REQUIRED_SW" lookupBO="F1-BooleanValues"/>
<javaPackage mapField="JAVA_PACKAGE" dataType="string"/>
<version suppress="true" dataType="number" mapField="VERSION"/>
<description mapField="DESCR" dataType="string"/>
<longDescription mapField="DESCRLONG" uiHint:textArea="true" dataType="string"/>
<owner suppress="input" dataType="lookup" mapField="OWNER_FLG" lookup="OWNER_FLG"/>
</iwsAnnotationTypeParameter>
O atributo só é aplicável a elementos em uma lista.