01. DADOS GERAIS
| Linha de Produto: | Microsiga Protheus® |
|---|
| Segmento: | SuprimentosBackOffice |
|---|
| Módulo: | Gestão de Contratos |
|---|
| Função: | CNTXFUN - Função Genéricas de Contratos |
|---|
| Ticket: | 8040830 |
|---|
| Issue: | DMANMAT02-25327 |
|---|
02. SITUAÇÃO/REQUISITO
Rotina não executa ponto de entrada em MVC , ao realizar o estorno da medição.
03. SOLUÇÃO
Feito ajuste para que seja possível utilizar o ponto de entrada CN120VEST, na rotina Nova Medição (CNTA121).
Está alteração foi necessária devido a função de estorno da rotina CNTA121 não estar preparada para executar ponto de entrada em MVC.
04. DEMAIS INFORMAÇÕES
...
MVC, ao executar a função de estorno da medição.
04. DEMAIS INFORMAÇÕES
Segue exemplo de como o ponto de entrada deve ser desenvolvido.
Obs.: Para garantir a eficiência do ponto de entrada, faça o tratamento conforme a função GetTypeRet do retorno da função xRet para que não ocorra erros caso o ponto de entrada não seja executado.
| Bloco de código |
|---|
|
#include 'protheus.ch'
#include 'parmtype.ch'
User Function CNTA121()
Local oMdl := Nil
Local cStage := ""
Local xRet := Nil
If ValType( PARAMIXB ) <> "U"
oMdl := PARAMIXB[1]
cStage := PARAMIXB[2]
xRet := GetTypeRet( cStage , xRet )
If FwIsInCallStack('CN121Estorn') //Garante que o ponto só será utilizado no estorno da medição
If cStage == "MODELVLDACTIVE"
Alert("Estornado com sucesso")
xRet := .T.
Else
xRet := .F.
Alert("Não foi é possível realizar o estorno")
EndIf
EndIf
EndIf
Return xRet
//Função para tratamento da variavel xRet para que não ocorra erro caso o ponto de entrada não seja executado
Static Function GetTypeRet( cStage , xRet )
Default xRet := Nil
Default cStage := ""
If cStage + "|" $ "MODELPRE|MODELPOS|FORMPRE|FORMPOS|FORMLINEPRE|FORMLINEPOS|FORMCANCEL|MODELVLDACTIVE|MODELCANCEL|"
xRet := .T.
ElseIf cStage == "BUTTONBAR"
xRet := {}
EndIf
Return ( xRet ) |
05. ASSUNTOS RELACIONADOS
| HTML |
|---|
<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;
}
.aui-tabs.horizontal-tabs>.tabs-menu>.menu-item.active-tab a::after {
background: #FF9900; !important
}
.menu-item.active-tab {
border-bottom: none !important;
}
</style>
|