Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Introdução

A modelagem de transações procura abarcar os atributos que são mais comuns e que tem aplicação mais abrangente possível. Entretanto, há situações onde é necessário a utilização de um atributo de domínio restrito, que se aplica somente a situações ou clientes em particular.

Nestes casos, com a devida aprovação por parte do comitê de integrações e dos gerentes de desenvolvimento dos produtos envolvidos, é possível customizar uma transação para incluir atributos particulares a uma situação bem definida.

CustomInformation

Os atributos customizados de uma transação são inseridos dentro da tag CustomInformation que, devido sua natureza, é uma tag opcional no XML Schema que define a TOTVSMessage.

Localização no XML

Esta tag pode estar inserida na tag BusinessMessage, vindo abaixo da tag BusinessContent, conforme diagrama abaixo:

A tag pode estar presente também dentro da tag ResponseMessage, vindo logo após a tag ReturnContent, conforme diagrama a seguir:

Estrutura da tag

A tag está estruturada segundo o conceito de tabela de um banco de dados. Entretanto, os dados dentro da tag não precisam refletir, necessariamente, uma estrutura de dados existente nos produtos que estão sendo integrados.

Em seu conjunto temos os seguintes elementos:

  • Table: correspondente a uma tabela de banco de dados e é o nível mais superior da estrutura. Deve ocorrer 1 ou mais vezes dentro da tag CustomInformation. Funciona como um agrupador de elementos do tipo Record.
  • Record: correspondente a um registro de uma tabela e pode ocorrer 0 ou mais vezes dentro da tag Table. Atua como um agrupador dos elementos Field.
  • Field: corresponde a um campo de registro e pode ocorrer 1 ou mais vezes dentro da tag Record.

A figura abaixo mostra como os elementos estão inter-relacionados:

Este é o trecho correspondente a definição da tag no arquivo totvsmsg.xsd.

Bloco de código
languagexml
<xs:complexType name="CustomInformationType">
	  <xs:sequence>
    	<xs:element name="Table" minOccurs="1" maxOccurs="unbounded">
        	<xs:complexType>
            	<xs:sequence>
                	<xs:element name="Record" minOccurs="0" maxOccurs="unbounded">
                    	<xs:complexType>
                        	<xs:sequence>
                            	<xs:element name="Field" minOccurs="1" maxOccurs="unbounded">
                                	<xs:complexType>
                                    	<xs:simpleContent>
                                        	<xs:extension base="xs:string">
                                            	<xs:attribute name="name" type="xs:string" use="required"></xs:attribute>
                      </xs:extension>
                    </xs:simpleContent>
                  </xs:extension>complexType>
                </xs:element>
              </xs:sequence>
            </xs:simpleContent>complexType>
          </xs:element>
        </xs:sequence>
        <xs:attribute name="name" type="xs:string" use="required"></xs:attribute>
	  </xs:complexType>
    </xs:element>
  </xs:sequence>
</xs:complexType>

Exemplo de utilização

O exemplo abaixo mostra uma possibilidade de uso da tag CustomInformation:

Bloco de código
languagexml
<?xml version="1.0" encoding="UTF-8"?>
<TOTVSMessage xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:noNamespaceSchemaLocation="xmlschema/material/events/unitofmeasure_11_1_0.xsd">
  <MessageInformation version="11.1.0">
    <UUID>UnitOfMe-asur-eUps-ertE-vent00000000</UUID>
    <Type>BusinessMessage</Type>
    <Transaction>UnitOfMeasure</Transaction>
    <StandardVersion>1.0</StandardVersion>
    <SourceApplication>TestApplication</SourceApplication>
    <Product  </xs:element>name="ExternalApp" version="1.0"/>
    <GeneratedOn>2001-12-31T12:00:00.000-03:00</GeneratedOn>
    <DeliveryType>Sync</DeliveryType>
  </MessageInformation>
  <BusinessMessage>
    <BusinessEvent>
      <Entity>UnitOfMeasure</Entity>
      <<Event>upsert</xs:sequence>Event>
      <Identification>
        <key name="code">UN</key>
      </Identification>
    </xs:complexType>BusinessEvent>
    <BusinessContent>
      <Code>UN</Code>
      <Description>Unidade</Description>
    </xs:element>BusinessContent>
    <CustomInformation>
      <Table name="labInfo">
     </xs:sequence>   <Record>
          <Field name="quanticMass">120</Field>
       <xs:attribute name="name" type="xs:string" use="required"></xs:attribute>
			</xs:complexType>
       <Field name="fusionMethod">Nuclear</Field>
        </Record>
      </Table>
    </xs:element>CustomInformation>
    </xs:sequence>BusinessMessage>
</xs:complexType>

Exemplo de utilização

A figura abaixo mostra uma possibilidade de uso da tag CustomInformation:
TOTVSMessage>
Índice

Índice
maxLevel3
printablefalse