01. VISÃO GERAL
Objetivo desse documento é exemplificar a utilização do ExecAuto da nova rotina de Documentos(CNTA171).
02. Inclusão de um novo documento
Exemplo inclusão de um novo documento
#INCLUDE "PROTHEUS.CH" #INCLUDE "FWMVCDEF.CH" /*Exemplo de inclusão de um novo documento*/ User Function Exemplo001() Local oModel := NIL Local oMdlCNK := Nil Local oMdlCXR := Nil Local cContra := "TREINAMENTO1954" Local cChave := xFilial("CN9") + cContra Local aErro := {} Local cNumero := "" CN9->(DbSetOrder(1)) if CN9->(DbSeek(cChave)) oModel := FwLoadModel("CNTA171") oModel:SetOperation(MODEL_OPERATION_INSERT) if oModel:Activate() oMdlCNK := oModel:GetModel("CNKMASTER") oMdlCNK:SetValue("CNK_DESCRI" , "DOC 001 - INCLUSAO") oMdlCNK:SetValue("CNK_CONTRA" , CN9->CN9_NUMERO) oMdlCNK:SetValue("CNK_TPDOC" , "001") oMdlCNK:SetValue("CNK_DTEMIS" , dDatabase) oMdlCNK:SetValue("CNK_DTVALI" , dDatabase+30) oMdlCNK:SetValue("CNK_OBS" , "Exemplo inclusão") if AliasInDic('CXR') oMdlCXR := oModel:GetModel("CXRDETAIL") cNumero := StrZero(oMdlCXR:Length(), GetSx3Cache('CXR_ITEM','X3_TAMANHO')) oMdlCXR:SetValue("CXR_ITEM" , cNumero) oMdlCXR:SetValue("CXR_NOME" , "Responsavel XPTO") oMdlCXR:SetValue("CXR_EMAIL", "[email protected]") oMdlCXR:AddLine() oMdlCXR:SetValue("CXR_ITEM" , Soma1(cNumero)) oMdlCXR:SetValue("CXR_NOME" , "Auxiliar XPTO") oMdlCXR:SetValue("CXR_EMAIL", "[email protected]") endif If oModel:VldData() oModel:CommitData() EndIf endif if oModel:HasErrorMessage() aErro := aClone(oModel:GetErrorMessage()) endif If oModel:IsActive() oModel:DeActivate() EndIf FreeObj(oModel) If !Empty(aErro) VarInfo('Erro apresentado:', aErro) EndIf endif Return
03. Alteração de um documento
Alteração de um documento
#INCLUDE "PROTHEUS.CH" #INCLUDE "FWMVCDEF.CH" /*Exemplo de alteração de um documento*/ User Function Exemplo002() Local oModel := NIL Local oMdlCNK := Nil Local oMdlCXR := Nil Local cContra := "TREINAMENTO1954" Local cChave := xFilial("CNK") + cContra Local aErro := {} CNK->(DbSetOrder(3))//CNK_FILIAL+CNK_CONTRA+CNK_TPDOC if CNK->(DbSeek(cChave)) oModel := FwLoadModel("CNTA171") oModel:SetOperation(MODEL_OPERATION_UPDATE) if oModel:Activate() oMdlCNK := oModel:GetModel("CNKMASTER") oMdlCNK:SetValue("CNK_OBS" , "Exemplo Modificação") if AliasInDic('CXR') oMdlCXR := oModel:GetModel("CXRDETAIL") oMdlCXR:GoLine(2) oMdlCXR:SetValue("CXR_NOME" , "Operacao de Atualização") endif If oModel:VldData() oModel:CommitData() EndIf endif if oModel:HasErrorMessage() aErro := aClone(oModel:GetErrorMessage()) endif If oModel:IsActive() oModel:DeActivate() EndIf FreeObj(oModel) If !Empty(aErro) VarInfo('Erro apresentado:', aErro) EndIf endif Return
04. Exclusão de um documento
Exclusão de um documento
#INCLUDE "PROTHEUS.CH" #INCLUDE "FWMVCDEF.CH" /*Exemplo de exclusão de um documento*/ User Function Exemplo003() Local oModel := NIL Local cContra := "TREINAMENTO1954" Local cChave := xFilial("CNK") + cContra Local aErro := {} CNK->(DbSetOrder(3))//CNK_FILIAL+CNK_CONTRA+CNK_TPDOC if CNK->(DbSeek(cChave)) oModel := FwLoadModel("CNTA171") oModel:SetOperation(MODEL_OPERATION_DELETE) if oModel:Activate() If oModel:VldData() oModel:CommitData() EndIf endif if oModel:HasErrorMessage() aErro := aClone(oModel:GetErrorMessage()) endif If oModel:IsActive() oModel:DeActivate() EndIf FreeObj(oModel) If !Empty(aErro) VarInfo('Erro apresentado:', aErro) EndIf endif Return
04. Integração com o Totvs Assinatura Eletrônica(TAE)
Autenticação
Antes de realizar a integração sem interface gráfica, é necessário que o usuário realize a autenticação em tela ao menos uma vez, para que o usuário/senha do TAE fique gravado no profile do usuário do Protheus.
Integração com TAE
#INCLUDE "PROTHEUS.CH" #INCLUDE "FWMVCDEF.CH" /*Exemplo de integração com o TAE*/ User Function Exemplo004() Local oModel := NIL Local cContra := "TREINAMENTO1954" Local cChave := xFilial("CNK") + cContra Local aErro := {} CNK->(DbSetOrder(3))//CNK_FILIAL+CNK_CONTRA+CNK_TPDOC if CNK->(DbSeek(cChave)) /* ATENÇÃO: É NECESSÁRIO REALIZAR A OPERAÇÃO UMA VEZ EM TELA PARA QUE O USUÁRIO/SENHA FIQUE ARMAZENADA NO PROFILE DO USUÁRIO, DEPOIS DISSO SERÁ POSSÍVEL REALIZAR A OPERAÇÃO SEM INTERFACE GRÁFICA. */ CN171SOpSg(1)//1- Envia/publica documento; 2- Republica documento; 3- Atualiza situação da assinatura oModel := FwLoadModel("CNTA171") oModel:SetOperation(MODEL_OPERATION_UPDATE) if oModel:Activate() If oModel:VldData() oModel:CommitData() EndIf endif if oModel:HasErrorMessage() aErro := aClone(oModel:GetErrorMessage()) endif If oModel:IsActive() oModel:DeActivate() EndIf FreeObj(oModel) If !Empty(aErro) VarInfo('Erro apresentado:', aErro) EndIf CN171SOpSg(0)//Restaura operação endif Return
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas