Rodar codigo sem o protheus

Gostaria de saber se é possível, eu rodar códigos simples no VsCode sem a necessidade de abrir o protheus.

O que seria abrir o Protheus? Pois não existe de fato essa necessidade, nunca existiu.

basta no programa inicial do smartclient ou ate mesmo quando voce executa pelo vscode, informar a sua user function, por exemplo: Captura de tela 2023-07-12 110728.jpeg

lembrando que existem algumas regras: 1. se seu codigo precisar abrir dicionario de dados e necessario abrir a empresa primerio 2. nao pode usar funcoes clients, ja que voce esta executando em server entre outras

:warning: Atenção: Esta publicação foi transferida automaticamente do fórum antigo, mas os anexos não foram incluídos.

Opa explica melhor isso, Preciso abrir o dicionario de dados e nao posso usar funçoes clientes

Olá Luscas, segue exemplo com duas funções, a primeira ira funcionar basta adicionar um codigo de cliente correto na variavel cCodigo, já na segunda errar arremessar um erro pos o ambiente não foi setado. Para testar a função basta chamar o debug(F5) e colocar a o nome de uma das funções u_Funciona() ou u_NaoFunciona()


/*/{Protheus.doc} User Function Funciona
    (Teste para chamado no Debug do VsCode, chamando com comando u_Funciona())
    @type  Function
    @author Leandro Lemos
    @since 12/07/2023
    @version P12
    @param param_name, param_type, param_descr
    @return return_var, return_type, return_description
    @example
    (examples)
    @see (links_or_references)
    /*/
User Function Funciona()
    Local cNome     := ''  
    Local cCodigo   := '000001'

    RpcSetEnv('01','010101')//Grupo, Filial

    DBSelectArea("SA1")
    SA1->(DBSetOrder(1))
    SA1->(DbSeek(xFilial("SA1")+cCodigo))
    cNome := SA1->A1_NOME

    RpcClearEnv()
return 

//Exemplo abaixo não ira funcionar pois não setei o ambiente
User Function NaoFunciona()
    Local cNome := ''  
    Local cCodigo   := '000001'

    DBSelectArea("SA1")
    SA1->(DBSetOrder(1))
    SA1->(DbSeek(xFilial("SA1")+cCodigo))
    cNome := SA1->A1_NOME

return