Passo a passo: | #INCLUDE "PROTHEUS.CH" #include "rwmake.ch" #include "TbiConn.ch" User Function MyMata261() Local cProd := "PA001" Local cUM := "" Local cLocal := "" Local cDoc := "" Local cLote := "8888888888001" Local dDatVal := "" Local nQuant := 0 Local lOk := .T. Local aItem := {} Local nOpcAuto:= 3 // Indica qual tipo de ação será tomada (Inclusão/Exclusão) PRIVATE lMsHelpAuto := .T. PRIVATE lMsErroAuto := .F. //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //| Abertura do ambiente | //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ PREPARE ENVIRONMENT EMPRESA "YY" FILIAL "01" MODULO "EST" DbSelectArea("SB1") DbSetOrder(1) If !SB1->(MsSeek(xFilial("SB1")+cProd)) lOk := .F. ConOut(OemToAnsi("Cadastrar produto: " + cProd)) Else cProd := B1_COD cDescri := B1_DESC cUM := B1_UM cLocal := B1_LOCPAD EndIf DbSelectArea("SD5") DbSetOrder(1) If !SD5->(MsSeek(xFilial("SD5")+ " " + cProd)) lOk := .F. ConOut(OemToAnsi("Cadastrar lote: " + cLote )) Else cLote := D5_LOTECTL dDataVl := D5_DTVALID nQuant := D5_QUANT EndIf If lOk cDoc := GetSxENum("SD3","D3_DOC",1) ConOut(Repl("-",80)) ConOut(PadC("Teste de Transf. Mod2",80)) ConOut("Inicio: "+Time()) //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //| Teste de Inclusao | //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Begin Transaction //Cabecalho a Incluir aAuto := {} aadd(aAuto,{cDoc,dDataBase}) //Cabecalho //Itens a Incluir aadd(aItem,cProd) //D3_COD aadd(aItem,cDescri) //D3_DESCRI aadd(aItem,cUM) //D3_UM aadd(aItem,cLocal) //D3_LOCAL aadd(aItem,"") //D3_LOCALIZ aadd(aItem,cProd) //D3_COD aadd(aItem,cDescri) //D3_DESCRI aadd(aItem,cUM) //D3_UM aadd(aItem,"02") //D3_LOCAL aadd(aItem,"") //D3_LOCALIZ aadd(aItem,"") //D3_NUMSERI aadd(aItem,cLote) //D3_LOTECTL aadd(aItem,"") //D3_NUMLOTE aadd(aItem,dDataVl) //D3_DTVALID aadd(aItem,0) //D3_POTENCI aadd(aItem,nQuant) //D3_QUANT aadd(aItem,0) //D3_QTSEGUM aadd(aItem,"") //D3_ESTORNO aadd(aItem,"") //D3_NUMSEQ aadd(aItem,cLote) //D3_LOTECTL aadd(aItem,dDataVl) //D3_DTVALID // aadd(aItem,"") //D3_SERVIC << Caso exista integração com WMS aadd(aItem,"") //D3_ITEMGRD // aadd(aItem,"") //D3_CODLAN << Caso use CAT83 // aadd(aItem,"") //D3_ITEMGRD << Caso use CAT83 // aadd(aItem,"") //D3_PERIMP << Caso use FCI // aadd(aItem,"") //D3_IDDCF // aadd(aItem,"") //D3_OBSERVA // aadd(aItem,"") //D3_xxxxx << Caso PE MA261CPO aadd(aAuto,aItem) MSExecAuto({|x,y| mata261(x,y)},aAuto,nOpcAuto) If !lMsErroAuto ConOut("Incluido com sucesso! " + cDoc) Else ConOut("Erro na inclusao!") MostraErro() EndIf ConOut("Fim : "+Time()) End Transaction EndIf RESET ENVIRONMENT Return Nil //=================================================================================== // Exemplo Estorno: //=================================================================================== User Function Tmata261() Local aAUTO := {} Local cDoc := "000113001" Local cProd := "TESTE "
Private lMsErroAuto := .F. RpcSetEnv("99","01",,,,,,,,,) DbSelectArea("SD3") DbSetOrder(2) DbSeek(xFilial("SD3")+cDoc+cProd) aAuto := {} MSExecAuto({|x,y| mata261(x,y)},aAuto,6) If !lMsErroAuto ALERT("Incluido com sucesso! ") ALERT(CVALTOCHAR(LMSERROAUTO)) Else ALERT("Erro na inclusao!") MostraErro() EndIf Return | Informações |
|---|
| O Modelo acima esta está baseado em campos padrões sem nenhuma integração ativa ou campos adicionais. Sugerimos ao desenvolvedor efetuar Sugere-se que o desenvolvedor efetue uma simulação manual, com as integrações ativas, e observar observe todos os campos que poderão ser obrigatórios e deverão ser adicionados em suas respectivas posições para evitar erro no momento de da execução pela falta de campos. O modelo acima não necessariamente é funcional e trata-se apenas de um exemplo orientativo de utilização. |
|