Pular para o conteúdo principal

Postagem em destaque

BlackTDN :: JSON Schema Validation: A Comprehensive Guide

# JSON Schema Validation: A Comprehensive Guide ## Understanding JSONSchemaValidator Ensuring the integrity and compliance of JSON data is crucial for modern applications. **JSONSchemaValidator** is a powerful class designed to validate JSON data against a specified JSON Schema. It provides robust methods to check types, patterns, numerical constraints, required properties, and both internal and external schema references. This guide breaks down the key features and functionalities of JSONSchemaValidator, making it easier for developers to implement schema validation effectively. 🔗 **GitHub Repository:** [JSONSchemaValidator](https://github.com/naldodj/naldodj-hb-jsonschema-validator) --- ## Key Features ✅ **Schema-Based Validation** – Ensures JSON data conforms to a predefined schema. ✅ **Error Handling & Logging** – Captures validation errors for debugging. ✅ **Fast Mode Support** – Stops validation upon detecting the first error. ✅ **Internal & External Reference ...

Protheus :: Abrindo tabela de outra empresa usando EmpOpenFile()

Utilize a função EmpOpenFile() para abrir Tabela de Outras Empresas conforme exemplo abaixo:
EmpOpenFile(cNewAls,cAlias,nOrder,lOpen,cEmpresa,cModo)
Onde: 
cNewAls -> Apelido com o qual a Tabela será aberto
cAlias -> Apelido da Tabela que se deseja abrir
nOrder -> Ordem do Indice para abertura da Tabela
lOpen -> .T. abre a Tabela .F. Fecha-a
cEmpresa -> Codigo da Empresa para abertura da Tabela
cModo -> Retornado por referência, define o Modo de acesso do arquivo

Ex.:

//Exemplo 1: Abrindo o SRA de outra empresa com um novo
//Alias
User Function Exemplo1()

Local aArea := GetArea()
Local aAreaSRA := SRA->( GetArea() )
Local cSvFilAnt := cFilAnt //Salva a Filial Anterior
Local cSvEmpAnt := cEmpAnt //Salva a Empresa Anterior
Local cSvArqTab := cArqTab //Salva os arquivos de
//trabalho
Local cModo //Modo de acesso do arquivo aberto
//"E" ou "C"
Local cNewAls := GetNextAlias() //Obtem novo Alias

IF EmpOpenFile(cNewAls,"SRA",1,.T.,"02",@cModo)
//...coloque aqui o seu código
( cNewAls )->( dbCloseArea() )
EndIF

//Restaura os Dados de Entrada ( Ambiente )
cFilAnt := cSvFilAnt
cEmpAnt := cSvEmpAnt
cArqTab := cSvArqTab

//Restaura os ponteiros das Tabelas
RestArea( aAreaSRA )
RestArea( aArea )

Return( NIL )

//Exemplo 2: Abrindo o SRA de outra empresa com o mesmo
//Alias
User Function Exemplo2()

Local aArea := GetArea()
Local aAreaSRA := SRA->( GetArea() )
Local cSvFilAnt := cFilAnt //Salva a Filial Anterior
Local cSvEmpAnt := cEmpAnt //Salva a Empresa Anterior
Local cSvArqTab := cArqTab //Salva os arquivos de
//trabalho
Local cModo //Modo de acesso do arquivo aberto
//"E" ou "C"
Local cNewAls := GetNextAlias() //Obtem novo Alias

IF EmpOpenFile("SRA","SRA",1,.T.,"02",@cModo)
//...coloque aqui o seu código
SRA->( dbCloseArea() )
//Restaura os Dados de Entrada ( Ambiente )
cFilAnt := cSvFilAnt
cEmpAnt := cSvEmpAnt
cArqTab := cSvArqTab
ChkFile( "SRA" ) //Reabre o SRA da empresa atual
EndIF

//Restaura os ponteiros das Tabelas
RestArea( aAreaSRA )
RestArea( aArea )

Return( NIL )

Obs.: Utilize a função RetFullName() para ver se existe a necessidade de se estar abrindo a Tabela da outra empresa. Pode ocorrer da Tabela ser compartilhada entre empresas. Ex.:

User Function EqualTable(cAlias1,cEmp1,cAlias2,cEmp2) 

Local cTableEmp1 := RetFullName(cAlias1,cEmp1)
Local cTableEmp2 := RetFullName(cAlias2,cEmp2)

Return( ( cTableEmp1 == cTableEmp2 ) )
[]s
иαldσ dj

Comentários

  1. Nossa, bacana d+.
    Esta precisando disso para realizar uma implementação aqui :)
    Muuuito obrigado

    ResponderExcluir
  2. Marinaldo, naldo...

    O cara do SIGAPON

    ResponderExcluir
  3. Olá Naldo... vc poderia postar alguma coisa sobre o uso da tecnica de programacao MVC com protheus?

    ResponderExcluir
  4. Naldo, Você conhece bem as classes? A classe principal (Main) é a classe Window? As rotinas abertas em abas no protheus (limitadas as licenças), qual classe é utilizada?

    ResponderExcluir
  5. Naldo, me tire uma duvida.
    Ha como trabalhar usando Threads em AdvPL?
    Estrou precisando realizar umas operacoes e gostaria de utilizar threads para realiza-las em paralelo.

    Obrigado

    ResponderExcluir
  6. Consigo processar um EXECAUTO na empresa que eu abri depois de utilizar essa função ???

    ResponderExcluir

Postar um comentário

Postagens mais visitadas