Utilização do Ponto de Entrada em MVC do Cadastro de Clientes na opção Incluir
Produto: | Microsiga Protheus® |
Ambiente: | Faturamento (SIGAFAT) |
Ocorrência: | Por padrão a tabela complementar de clientes é gravada apenas quando ocorre a manipulação de alguma de suas informações. Comportamento este para evitar que não haja a gravação de uma AI0 para cada um dos registros SA1, o que incorreria em perda de performance e na "superpopulação" de registros. Portanto, segue orientação, caso haja a necessidade de condicionar a gravação da tabela sem que seja feita sua manipulação. Como "forçar" a gravação a tabela AI0 (Complemento de Cliente) via ponto de entrada na rotina de Cadastro de Clientes em MVC? |
Passo a Passo: | Utilizaremos o ponto de entrada em MVC através do id FORMPOS, que será executado antes da abertura da janela do cadastro. No exemplo abaixo, iremos retratar o caso em que o usuário confirma a inclusão de um cliente. Exemplo: #Include "Protheus.Ch" #Include "FWMVCDEF.CH" #Include "RWMake.Ch" #Include "TopConn.Ch" *********************** User Function CRMA980() *********************** Local aParam := ParamIxb Local xRet := .T. Local cIDPonto := '' Local cIDModel := '' Local oObj := NIL Local aFields := {} Local nY := 1 Local aSX3Area := SX3->(GetArea()) Local xConteudo If aParam <> NIL oObj := aParam[1] cIDPonto := aParam[2] cIDModel := aParam[3] nOperation := oObj:GetOperation() //Exemplo para que a TABELA AI0 (Complementos de Clientes) seja gerada mesmo sem atualização do MODEL AI0CHILD If cIDPonto == 'FORMPOS' .And. cIDModel == "AI0CHILD" .And. nOperation == MODEL_OPERATION_INSERT aFields := FWSX3Util():GetAllFields("AI0",.F.) SX3->(DbSetOrder(2)) If Empty(Alltrim(oObj:GetValue("AI0_CODCLI"))) For nY := 1 To Len(aFields) If SX3->(DbSeek(aFields[nY])) .And. X3Uso(SX3->X3_USADO) xConteudo := Alltrim(GetSx3Cache(aFields[nY],'X3_RELACAO')) If !Empty(xConteudo) oObj:SetValue(aFields[nY],xConteudo) EndIf EndIf Next oObj:SetValue("AI0_SETPUB","2") EndIf RestArea(aSX3Area) EndIf EndIf Return(xRet) |
Pode lhe interessar: |