Índice
Objetivo
O objetivo deste documento é mostrar como utilizar o SaveRecord com valor nulo para data.
Observação: Será necessário seguir os passos deste documento e adicionar a tag no atributo com valor nulo para data apenas se for passado um Schema no XML a ser utilizado. Se o XML não possuir Schema não será necessário alterar o atributo.
Mais informações para Parâmetros de Contexto
Como fazer - Valor nulo para Data
Quando existe a necessidade de atualizar um registro com o valor nulo para a data deve-se adicionar o atributo:
xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
Para maiores detalhes sobre o uso do atributo, favor verificar em www.w3.org. Também existem alguns detalhes na documentação da Microsoft, como o conteúdo disponível neste link.
Exemplo:
Observe que no exemplo abaixo a tag DATAULTIMOACESSOVALIDO contém o atributo informado acima e ao efetuar o SaveRecord esse campo será atualizado para o valor nulo.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tot="http://www.totvs.com/"> <soapenv:Header/> <soapenv:Body> <tot:SaveRecord> <!-Optional:-> <tot:DataServerName>GlbUsuarioData</tot:DataServerName> <!-Optional:-> <tot:XML><![CDATA[<GlbUsuario> <xs:schema id="GlbUsuario" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> ... </xs:schema> <GUSUARIO> <CODUSUARIO>convidado</CODUSUARIO> <NOME>Usuario Convidado</NOME> ... <DATAULTIMOACESSOVALIDO xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"></DATAULTIMOACESSOVALIDO> </GUSUARIO> </GlbUsuario>]]> </tot:XML> <!-Optional:-> <tot:Contexto>CODCOLIGADA=1</tot:Contexto> </tot:SaveRecord> </soapenv:Body> </soapenv:Envelope>
Exemplo
A imagem abaixo ilustra o exemplo acima, executado no SoapUI utilizando o atributo: xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance".
O arquivo abaixo pode ser baixado e utilizado como teste da aplicação do atributo. Lembre-se de utilizar uma base de teste.
Arquivo para download: Xml preparado para nulo.xml
Atenção
Para executar o exemplo deste documento utilize uma base de teste, pois ao efetuar um SaveRecord um novo registro será criado na sua base, evitando assim inconsistências no seu ambiente.