...
Objetivo desse documento é exemplificar a utilização do ExecAuto da nova rotina de Documentos(CNTA171).
02.
...
Inclusão de um novo documento
Bloco de código |
---|
title | Exemplo medição inclusão de um contrato fixo com itensnovo documento |
---|
linenumbers | true |
---|
|
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"
/*Exemplo de inclusão de um novo documento*/
User Function CNT121_002Exemplo001()
Local oModel := NIL
Local oMdlCNK := Nil
Local oMdlCXR := Nil
Local cCodCTR Local cContra := "CNTA121EXEMP002TREINAMENTO1954"
Local cNumMed Local cChave := xFilial("CN9"
Local aMsgDeErro) + cContra
Local aErro := {}
Local lRet Local cNumero := .F.
""
CN9->(DbSetOrder(1))
If if CN9->(DbSeek(xFilial("CN9") + cCodCTR))//Posicionar na CN9 para realizar a inclusão
cChave))
oModel := FWLoadModelFwLoadModel("CNTA121CNTA171")
oModel:SetOperation(MODEL_OPERATION_INSERT)
If(
if oModel:CanActivateActivate())
oModel:Activate()
oModel
oMdlCNK := oModel:GetModel("CNKMASTER")
oMdlCNK:SetValue("CNDMASTERCNK_DESCRI" ,"CND "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("CNDMASTERCXR_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
Bloco de código |
---|
firstline | 1 |
---|
title | Alteração de um documento |
---|
linenumbers | true |
---|
|
#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
Bloco de código |
---|
firstline | 1 |
---|
title | Exclusão de um documento |
---|
linenumbers | true |
---|
|
#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)
Aviso |
---|
|
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. |
Bloco de código |
---|
firstline | 1 |
---|
title | Integração com TAE |
---|
linenumbers | true |
---|
|
#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"CND_RCCOMP" ,"1")//Selecionar competência
oModel:SetValue("CXNDETAIL","CXN_CHECK" , .T.)//Marcar a planilha(nesse caso apenas uma)
oModel:GetModel('CNEDETAIL'):GoLine(1)
oModel:SetValue( 'CNEDETAIL' , 'CNE_QUANT' , 1)
If (oModel:VldData()) /*Valida o modelo como um todo*/
oModel:CommitData()
EndIf
EndIf
If(oModel:HasErrorMessage())
aMsgDeErro := oModel:GetErrorMessage()
Else
cNumMed := CND->CND_NUMMED
oModel:DeActivate()
lRet := CN121Encerr(.T.) //Realiza o encerramento da medição
EndIf
EndIf
Return lRet |
HTML |
---|
<!-- esconder o menu -->
<style>
div.theme-default .ia-splitter #main {
margin-left: 0px;
}
.ia-fixed-sidebar, .ia-splitter-left {
display: none;
}
#main {
padding-left: 10px;
padding-right: 10px;
overflow-x: hidden;
}
.aui-header-primary .aui-nav, .aui-page-panel {
margin-left: 0px !important;
}
.aui-header-primary .aui-nav {
margin-left: 0px !important;
}
</style>
|