Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...


Bloco de código
themeRDark
titleprograma.p
USING com.totvs.framework.sec.ProtectedData.

FIND FIRST tabela_negocio EXCLUSIVE-LOCK:
ASSIGN tabela_negocio.nom_cliente    = ProtectedData:DefaultAnonymousCharacter
       tabela_negocio.cod_rg         = ProtectedData:DefaultAnonymousNumber
       tabela_negocio.dat_nascimento = ProtectedData:DefaultAnonymousDate.

03. getAnonymizableFieldsByDatabase

Objetivo

Responsável por retornar os campos ativos e passíveis de anonimização, filtrados por uma lista de bancos. São retornados os registros configurados em Gerenciamento dos campos pessoais e/ou sensíveis, não é realizada validação do Metaschema do banco de dados.

Para verificação do campo com validações de consistência no Metaschema do banco de dados utilize o método 06. isFieldAnonymizable.

Parâmetros de entrada

MESSAGE STRING(ProtectedData:DefaultAnonymousCharacter) 
VIEW-AS ALERT-BOX INFO BUTTONS OK.

MESSAGE STRING(ProtectedData:DefaultAnonymousNumber) 
VIEW-AS ALERT-BOX INFO BUTTONS OK.

MESSAGE STRING(ProtectedData:DefaultAnonymousDate) 
VIEW-AS ALERT-BOX INFO BUTTONS OK.

03. isFieldAnonymizable

Objetivo

Responsável por retornar se o campo é anonimizável ou não.

Parâmetros de entrada

Tipo

Descrição

CHARACTER

databaseName: Nome do banco de dados;

CHARACTER

tableName: Nome da tabela.

CHARACTER

fieldName: Nome do campo;


Retorno

TipoDescrição
LOGICALO retorno será VERDADEIRO/FALSO, podendo retornar erro que deve ser capturado utilizando a declaração do 'CATCH'.

O erros serão lançados por meio da classe fwk.utils.CustomError

Expandir
titleERROR 47

Será lançado ao informar parâmetros de entrada de um campo não configurado em Gerenciamento dos campos pessoais e/ou sensíveis.

Bloco de código
themeRDark
[
   {

Tipo

Descrição

JsonArray

O valor de entrada é um objeto do tipo JsonArray

Bloco de código
themeRDark
collapsetrue
[ {
        "
databaseName
ErrorSequence":
"emsfnd"
 1,
    
},
    
{
"ErrorNumber": 47,
        "
databaseName
ErrorDescription":
"emsfnd2"
 "Campo pessoal não cadastrado(a)",
    
} ]

databaseName: Nome do banco de dados.

Retorno

    "ErrorParameters": "Campo pessoal",
        "ErrorType": "ERROR",
        "ErrorHelp": "Campo pessoal não cadastrado(a).",
        "ErrorSubType": "ERROR"
    }
]
Expandir
titleERROR 56

Será lançado ao informar parâmetros de entrada de um campo inexistente no banco de dados.

Bloco de código
themeRDark
[
TipoDescriçãoJsonArray
  • Formato de retorno é do tipo JsonArray.
  • O agrupamento dos registros será por banco.
  • Caso não exista registro para o banco informado, será retornado o objeto anonymizableFields sem registros.
Bloco de código
themeRDark
collapsetrue
[ { "databaseName": "emsfnd", "anonymizableFields": [
   {
        "
tableName
ErrorSequence": 
"tabela_teste"
1,
        "
fieldName
ErrorNumber": 
"campo_teste"
56,
        "
defaultRecord
ErrorDescription": 
true
"Campo inexistente.",
        "
sensitiveField
ErrorParameters":
true,
 
"
documentTypeId
Campo"
: 1
,
        "
documentTypeDes
ErrorType": "
CPF
ERROR",
        "
classifiers
ErrorHelp": 
[
"Verifique se existe uma ocorrência para o(a) Campo informado(a) em 
{ "id": 1,
seu cadastro.",
        "
defaultRelation
ErrorSubType": 
true,
"ERROR"
    
"justificative": "Justificativa do Campo",
}
]
Expandir
titleERROR 1094

Será lançado ao informar parâmetros de entrada de um campo desativado em Gerenciamento dos campos pessoais e/ou sensíveis.

Bloco de código
themeRDark
[
   {
        
"
description
ErrorSequence": 
"Execução de Contrato"
1,
        
}
"ErrorNumber": 1094,
        
] }
"ErrorDescription": "Campo pessoal está desativado(a).",
        
]
"ErrorParameters": "Campo pessoal",
  
},
  
{
    "
databaseName
ErrorType": "
emsfnd2
ERROR",
        "
anonymizableFields
ErrorHelp": 
[]
"",
  
} ]Exemplo de programa Bloco de código
themeRDark
titleprograma.p
collapsetrue
USING
 
Progress.Json.ObjectModel.*. USING
 
com.totvs.framework.sec.ProtectedData. DEFINE
 
VARIABLE
 
jObjRequest
  
AS JsonObject NO-UNDO. DEFINE VARIABLE jArrRequest AS JsonArray NO-UNDO. DEFINE VARIABLE jArrResponse AS JsonArray NO-UNDO. jArrRequest = NEW JsonArray(). jObjRequest = NEW JsonObject(). jObjRequest:ADD("databaseName","emsfnd"). jArrRequest:ADD(jObjRequest). jObjRequest = NEW JsonObject(). jObjRequest:ADD("databaseName","emsfnd2"). jArrRequest:ADD(jObjRequest). jArrResponse = ProtectedData:getAnonymizableFieldsByDatabase(jArrRequest). jArrResponse:WriteFile("c:\temp\resultado.json", TRUE).

04. getAnonymizableFieldsByTable

Objetivo

Responsável por retornar os campos ativos e passíveis de anonimização, filtrados por uma lista de bancos e tabelas. São retornados os registros configurados em Gerenciamento dos campos pessoais e/ou sensíveis, não é realizada validação do Metaschema do banco de dados.

Para verificação do campo com validações de consistência no Metaschema do banco de dados utilize o método 06. isFieldAnonymizable.

Parâmetros de entrada

...

Tipo

...

Descrição

...

O valor de entrada é um objeto do tipo JsonArray

Bloco de código
themeRDark
collapsetrue
[  
    {  
        "databaseName":"emsfnd"
        "tableName":"tabela_teste"
    },
    {  
        "databaseName":"emsfnd2"
        "tableName":"tabela_teste"
    }
]

databaseName: Nome do banco de dados.

tableName: Nome da tabela.

Retorno

...

  • Formato de retorno é do tipo JsonArray.
  • O agrupamento dos registros será por banco e tabela.
  • Caso não exista registro para o banco e tabela informado, será retornado o objeto anonymizableFields sem registros.
Bloco de código
themeRDark
collapsetrue
[
  {
    "databaseName": "emsfnd",
    "tableName": "tabela_teste",
    "anonymizableFields": [
      {
        "fieldName": "campo_teste",
        "defaultRecord": true,
        "sensitiveField": true,
        "documentTypeId": 1,
        "documentTypeDes": "CPF",
        "classifiers": [
          {
            "id": 1,
            "defaultRelation": true,
            "justificative": "Justificativa do Campo",
            "description": "Execução de Contrato"
          }
        ]
      }      
    ]
  },
  {
    "databaseName": "emsfnd2",
	"tableName": "tabela_teste",
    "anonymizableFields": []
  }
]

...

Bloco de código
themeRDark
titleprograma.p
collapsetrue
USING Progress.Json.ObjectModel.*.
USING com.totvs.framework.sec.ProtectedData.

DEFINE VARIABLE jObjRequest  AS JsonObject NO-UNDO.
DEFINE VARIABLE jArrRequest  AS JsonArray  NO-UNDO.
DEFINE VARIABLE jArrResponse AS JsonArray  NO-UNDO.

jArrRequest = NEW JsonArray().

jObjRequest = NEW JsonObject().
jObjRequest:ADD("databaseName","emsfnd").
jObjRequest:ADD("tableName","tabela_teste").
jArrRequest:ADD(jObjRequest).

jObjRequest = NEW JsonObject().
jObjRequest:ADD("databaseName","emsfnd2").
jObjRequest:ADD("tableName","tabela_teste").
jArrRequest:ADD(jObjRequest).

jArrResponse = ProtectedData:getAnonymizableFieldsByTable(jArrRequest).

jArrResponse:WriteFile("c:\temp\resultado.json", TRUE).

05. getAnonymizableFieldsByRoutine

Objetivo

Responsável por retornar os campos ativos e passíveis de anonimização, filtrados por uma lista de rotinas.

São retornados os registros configurados em Gerenciamento dos campos pessoais e/ou sensíveis e que estejam relacionados aos programas do Datasul por meio da funcionalidade Relacionamento das rotinas com campos pessoais e/ou sensíveis, não é realizada validação do Metaschema do banco de dados.

Para verificação do campo com validações de consistência no Metaschema do banco de dados utilize o método 06. isFieldAnonymizable.

Parâmetros de entrada

...

Tipo

...

Descrição

...

O valor de entrada é um objeto do tipo JsonArray, contendo códigos do programas.

Bloco de código
themeRDark
collapsetrue
["programa_teste","programa_teste2"]
"ErrorSubType": "ERROR"
    }
]
Expandir
titleERROR 56891

Retorno

...

  • Formato de retorno é do tipo JsonArray.
  • O agrupamento dos registros será por código e nome do programa.
  • Caso não exista registro relacionado com o programa, será retornado o objeto anonymizableFields sem registros.
Bloco de código
themeRDark
collapsetrue
[
	{
        "programCode": "programa_teste",
        "programName": "Programa de teste",
        "anonymizableFields": [{
				"databaseName": "banco_teste",
				"tabledName": "tabela_teste",
                "fieldName": "campo_teste",
                "defaultRecord": true,
                "sensitiveField": true,
                "documentTypeId": 1,
                "documentTypeDes": "CPF",
                "classifiers": [{
                        "id": 1,
                        "defaultRelation": true,
                        "justificative": "Justificativa do Campo",
                        "description": "Execução de Contrato"
                    }
                ]
            }
        ]
    },
	{
        "programCode": "programa_teste2",
        "programName": "Programa de teste2",
        "anonymizableFields": [{
				"databaseName": "banco_teste2",
				"tabledName": "tabela_teste2",
                "fieldName": "campo_teste2",
                "defaultRecord": true,
                "sensitiveField": true,
                "documentTypeId": 1,
                "documentTypeDes": "CPF",
                "classifiers": [{
                        "id": 1,
                        "defaultRelation": true,
                        "justificative": "Justificativa do Campo",
                        "description": "Execução de Contrato"
                    }
                ]
            }
        ]
    }
]

...

Bloco de código
themeRDark
titleprograma.p
collapsetrue
USING Progress.Json.ObjectModel.*.
USING com.totvs.framework.sec.ProtectedData.

DEFINE VARIABLE jArrRequest  AS JsonArray  NO-UNDO.
DEFINE VARIABLE jArrResponse AS JsonArray  NO-UNDO.

jArrRequest = NEW JsonArray().
jArrRequest:ADD("programa_teste").
jArrRequest:ADD("programa_teste2").

jArrResponse = ProtectedData:getAnonymizableFieldsByRoutine(jArrRequest).

jArrResponse:WriteFile("c:\temp\resultado.json", TRUE).

06. isFieldAnonymizable

Objetivo

Responsável por retornar se o campo é anonimizável ou não.

Parâmetros de entrada

...

Tipo

...

Descrição

...

databaseName: Nome do banco de dados;

...

tableName: Nome da tabela;

...

fieldName: Nome do campo.

Retorno

TipoDescriçãoLOGICALO retorno será VERDADEIRO/FALSO, podendo retornar erro que deve ser capturado utilizando a declaração do 'CATCH'.

O erros serão lançados por meio da classe fwk.utils.CustomError

ExpandirtitleERROR 1094

Será lançado ao informar parâmetros de entrada

de um campo desativado em Gerenciamento dos campos pessoais e/ou sensíveis

nulos ou vazios.

Bloco de código
themeRDark
[
   {
        "ErrorSequence": 1,
        "ErrorNumber": 
1094
56891,
        "ErrorDescription": "
Campo pessoal está desativado(a)
Parâmetros incorretos.",
        "ErrorParameters": "
Campo pessoal
",
        "ErrorType": "ERROR",
        "ErrorHelp": "
\n
",
        "ErrorSubType": "ERROR"
    }
]
Expandir
titleERROR
56891
56893

Será lançado ao informar parâmetros de entrada

nulos ou vazios

de um campo pessoal anonimizável que faz parte de um índice único.

Bloco de código
themeRDark
[
   {
        "ErrorSequence": 1,
        "ErrorNumber": 
56891
56893,
        "ErrorDescription": "
Parâmetros incorretos.
Campo pessoal anonimizavel faz parte de um índice único",
        "ErrorParameters": "",
        "ErrorType": "ERROR",
        "ErrorHelp": "
\n
Campo pessoal configurado como anonimizavel faz parte de um índice único e não poderá ser anonimizado.",
        "ErrorSubType": "ERROR"
    }
]
Expandir
titleERROR
47
57240

Será lançado ao informar parâmetros de entrada de um campo

não configurado em Gerenciamento dos campos pessoais e/ou sensíveis

pessoal anonimizável que é do tipo lógico.

Bloco de código
themeRDark
[
   {
        "ErrorSequence": 1,
        "ErrorNumber": 
47
57240,
        "ErrorDescription": "Campo pessoal
não cadastrado(a)
 anonimizavel é do tipo lógico",
        "ErrorParameters": "
Campo pessoal
",
        "ErrorType": "ERROR",
        "ErrorHelp": "
Campo pessoal não cadastrado(a)
Campo pessoal configurado como anonimizavel é do tipo lógico e não poderá ser anonimizado.",
        "ErrorSubType": "ERROR"
    }
]
Expandir
titleERROR
56
57269

Será lançado ao informar parâmetros de entrada de um campo

inexistente no banco de dados

pessoal anonimizável que é do tipo blob.

Bloco de código
themeRDark
[
   {
        "ErrorSequence": 1,
        "ErrorNumber": 
56
57269,
        "ErrorDescription": "Campo
inexistente.
 pessoal anonimizavel é do tipo blob",
        "ErrorParameters": "
Campo
",
        "ErrorType": "ERROR",
        "ErrorHelp": "
Verifique se existe uma ocorrência para o(a) Campo informado(a) em seu cadastro
Campo pessoal configurado como anonimizavel é do tipo blob e não poderá ser anonimizado.",
        "ErrorSubType": "ERROR"
    }
]
Expandir
titleERROR
56893
57360

Será lançado ao informar parâmetros de entrada de um campo pessoal anonimizável que

faz parte de um índice único

é chave primária.

Bloco de código
themeRDark
[
   {
        "ErrorSequence": 1,
        "ErrorNumber": 
56893
57360,
        "ErrorDescription": "Campo pessoal anonimizavel 
faz
é 
parte de um indice único
chave primária.",
        "ErrorParameters": "",
        "ErrorType": "ERROR",
        "ErrorHelp": "Campo pessoal configurado como anonimizavel 
faz
é 
parte de um indice único
chave primária e não poderá ser anonimizado.
\n
",
        "ErrorSubType": "ERROR"
    }
]
Exemplo de programa
Bloco de código
themeRDark
titleprograma.p
collapsetrue
USING com.totvs.framework.sec.ProtectedData.
DEFINE VARIABLE lReturn AS LOGICAL     NO-UNDO.
DO ON ERROR UNDO, LEAVE:
    ASSIGN lReturn = ProtectedData:isFieldAnonymizable (INPUT "emsfnd", INPUT "tabela_teste", INPUT "campo_teste").
    MESSAGE lReturn VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
    CATCH customError AS fwk.utils.CustomError:
        MESSAGE STRING(customError:arryaOfErrors:getJsonText()) VIEW-AS ALERT-BOX INFO BUTTONS OK.
    END CATCH.
END.

...