Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com

Página Inicial

 
4D v19.8
METHOD SET CODE

METHOD SET CODE 


 

METHOD SET CODE ( rota ; codigo {; *} ) 
Parâmetro Tipo   Descrição
rota  Texto, Array texto in Texto ou array texto que contém uma ou mais rotas de método
codigo  Texto, Array texto in Código dos métodos designados
*  Operador in Se passado = o comando aplica ao banco de dados local quando é executado de um componente (parâmetro ignorado fora deste contexto)

O comando METHOD SET CODE modifica o código dos métodos designados pelo parâmetro rota com o conteúdo passado no parâmetro codigo. Este comando pode acessar ao código de todos os tipos de métodos: métodos de banco, triggers, métodos projeto, métodos formulário e métodos objeto. Se um método não existir, é criado com os conteúdos codigo.

O comando pode acessar o código existente de todos os tipos de métodos: métodos de banco de dados, triggers, métodos projeto, métodos formulário e métodos objeto.

Se um método não existir, é criado com o conteúdos de código.

Nota: em bancos de dados projeto, criar um novo método é apenas possível para métodos banco de dados e triggers.

Pode usar dois tipos de sintaxe, baseadas em arrays texto ou em variáveis texto:

 C_TEXT(tVpath) // variáveis texto
 C_TEXT(tVcode)
 METHOD SET CODE(tVpath;tVcode) // código de um só método

 ARRAY TEXT(arrPaths;0) // arrays texto
 ARRAY TEXT(arrCodes;0)
 METHOD SET CODE(arrPaths;arrCodes) // código de vários métodos

Não é possível misturar as duas sintaxes.

Se passar uma rota de acesso errada, o comando não faz nada.

Quando se chama METHOD SET CODE, os atributos dos métodos se reinicializam por padrão. No entanto, se a primeira linha do codigo de um método contém metadados válidos (expressados em JSON), são usados para definir os atributos do método e a primeira linha não é inserida. Exemplo de metadados:

  // %attributes = {"invisible":true,"lang":"fr","folder":"Security"}

Nota: Estes metadados são gerados automaticamente pelo comando METHOD GET CODE. Para saber mais sobre atributos suportados, veja o comando  METHOD SET ATTRIBUTES.

Concernente a propriedade "folder" dos metadados:

  • Se esta propriedade está presente e corresponde a uma pasta válida, o método se localiza em sua pasta pai,
  • Se esta propriedade não está presente ou se a pasta já não existe, o comando não muda a nível da pasta pai,

Pode executar o comando de uma componente, mas neste caso você deve passar o parâmetro * porque o acesso ao código do componente é somente leitura. Se omitir o parâmetro * neste contexto, o erro -9763 é gerado.

Exemplo  

Este exemplo exporta e importa a totalidade dos métodos projeto de uma aplicação:

 $root_t:=Get 4D folder(Database folder)+"methods"+Folder separator
 ARRAY TEXT($fileNames_at;0)
 CONFIRM("Import or export methods?";"Import";"Export")
 
 If(OK=1)
    DOCUMENT LIST($root_t;$fileNames_at)
    For($loop_l;1;Size of array($fileNames_at))
       $filename_t:=$fileNames_at{$loop_l}
       DOCUMENT TO BLOB($root_t+$filename_t;$blob_x)
       METHOD SET CODE($filename_t;BLOB to text($blob_x;UTF8 text without length))
    End for
 Else
    If(Test path name($root_t)#Is a folder)
       CREATE FOLDER($root_t;*)
    End if
    METHOD GET PATHS(Path project method;$fileNames_at)
    METHOD GET CODE($fileNames_at;$code_at)
    For($loop_l;1;Size of array($fileNames_at))
       $filename_t:=$fileNames_at{$loop_l}
       SET BLOB SIZE($blob_x;0)
       TEXT TO BLOB($code_at{$loop_l};$blob_x;UTF8 text without length)
       BLOB TO DOCUMENT($root_t+$filename_t;$blob_x)
    End for
 End if
 SHOW ON DISK($root_t)



Ver também 

METHOD GET CODE

 
PROPRIEDADES 

Produto: 4D
Tema: Accesso aos Objetos de Design
Número 1194

 
CONTEÚDO DA PÁGINA 
 
HISTÓRIA 

Criado por: 4D v13
Modificado: 4D v14
Modificado: 4D v15
Modificado: 4D v18 R3

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v19)
Manual de linguagem 4D ( 4D v19.1)
Manual de linguagem 4D ( 4D v19.4)
Manual de linguagem 4D ( 4D v19.5)
Manual de linguagem 4D ( 4D v19.6)
Manual de linguagem 4D ( 4D v19.7)
Manual de linguagem 4D ( 4D v19.8)