Árvore de páginas

01. DADOS GERAIS

Linha de Produto:TOTVS Varejo Lojas
Segmento:Varejo
Módulo:SigaLoja (Controle de Loja)
Função:

retail.rmi.funcoes.tlpp

Ticket:Não há.
Story:

DVARLOJ1-9895

02. SITUAÇÃO/REQUISITO

Foi levantada a necessidade de criptografar as senhas para o cadastro de usuários - Operador de Lojas(LJCADAUX) enviados do Protheus para o PDVOMNI.

03. SOLUÇÃO

Após atualização do Appserver para a versão 20.3.2.3, foi gerada a função de criptografia PBKDF2 esperada pelo PDV OMNI. E atualizado o Layout de Configuração do Operador de Lojas(LJLAYAUX), assim como o Envio do Assinantes(RMICADASSI) conforme a sessão de informações deste documento.

Para atualizar o Layout de Configuração para o Operador de Lojas acesse: Atualizações > Smart Hub >  Configurações > Layouts Auxiliares(LJLAYAUX) – Operador de Loja.

Para atualizar o Layout de Envio para o Operador de Lojas acesse: Atualizações > Smart Hub >  Cadastros > Assinantes (RMICADASSI) – PDVSync / Operador de Loja.

04. DEMAIS INFORMAÇÕES

Configuracao Operador Loja
{
	"Components": [
		{
			"ContentType": "String",
			"IdComponent": "nome",
			"Component": {
				"ComponentType": "GET",
				"Parameters": {
					"Order": "01",
					"List": null,
					"Size": 30,
					"F3": null,
					"Required": true,
					"Picture": null,
					"Valid": null,
					"CanChange": true
				},
				"ComponentLabel": "Nome"
			},
			"ComponentContent": ""
		},
		{
			"ContentType": "String",
			"IdComponent": "cpf",
			"Component": {
				"ComponentType": "GET",
				"Parameters": {
					"Order": "02",
					"List": null,
					"Size": 11,
					"F3": null,
					"Required": true,
					"Picture": "@R 999.999.999-99",
					"Valid": "Cgc(xValor)",
					"CanChange": "IIF(oModel:GetOperation() == 4,.F.,.T.)"
				},
				"ComponentLabel": "CPF"
			},
			"ComponentContent": ""
		},
		{
			"ContentType": "String",
			"IdComponent": "login",
			"Component": {
				"ComponentType": "GET",
				"Parameters": {
					"Order": "03",
					"List": null,
					"Size": 30,
					"F3": null,
					"Required": true,
					"Picture": null,
					"Valid": null,
					"CanChange": true
				},
				"ComponentLabel": "Login"
			},
			"ComponentContent": ""
		},
		{
			"ContentType": "String",
			"IdComponent": "senha",
			"IdFieldModel": "SENHA",
			"Component": {
				"ComponentType": "Text",
				"Parameters": {
					"Order": "04",
					"List": null,
					"Size": 64,
					"F3": null,
					"Required": true,
					"Picture": "@*",
					"Valid": "",
					"CanChange": true
				},
				"ComponentLabel": "Senha"
			},
			"ComponentContent": ""
		},
		{
			"ContentType": "String",
			"IdComponent": "perfil",
			"Component": {
				"ComponentType": "GET",
				"Parameters": {
					"Order": "05",
					"List": null,
					"Size": 20,
					"F3": "{|| LjCadAuxF3('MIH', \"AllTrim(MIH->MIH_TIPCAD) == 'PERFIL DE OPERADOR' .And. MIH->MIH_ATIVO == '1'\", '1')}",
					"Required": true,
					"Picture": "@!",
					"Valid": "ExistCpo('MIH', PadR('PERFIL DE OPERADOR', TamSx3('MIH_TIPCAD')[1]) + xValor, 1)",
					"CanChange": true
				},
				"ComponentLabel": "Id do Perfil"
			},
			"ComponentContent": ""
		},
		{
			"ContentType": "String",
			"IdComponent": "banco",
			"Component": {
				"ComponentType": "GET",
				"Parameters": {
					"Order": "06",
					"List": null,
					"Size": 3,
					"F3": "VRF1",
					"Required": true,
					"Picture": "@!",
					"Valid": "LjAuxMsg(ExistCpo('SA6', xValor), 'banco', 'M1')",
					"Messages": [
						{
							"Id": "M1",
							"Message": "Ops! Código do banco inválido."
						}
					],
					"CanChange": true,
					"Trigger": [
						{
							"TargetIdField": "agencia",
							"SetValue": "Posicione('SA6', 1, xFilial('SA6') + oModel:GetValue('banco'), 'A6_AGENCIA')"
						},
						{
							"TargetIdField": "conta",
							"SetValue": "Posicione('SA6', 1, xFilial('SA6') + oModel:GetValue('banco'), 'A6_NUMCON')"
						}
					]
				},
				"ComponentLabel": "Código do Banco"
			},
			"ComponentContent": ""
		},
		{
			"ContentType": "String",
			"IdComponent": "agencia",
			"Component": {
				"ComponentType": "GET",
				"Parameters": {
					"Order": "07",
					"List": null,
					"Size": 5,
					"F3": null,
					"Required": false,
					"Picture": "@!",
					"Valid": null,
					"Messages": [],
					"CanChange": false
				},
				"ComponentLabel": "Número da Agência"
			},
			"ComponentContent": ""
		},
		{
			"ContentType": "String",
			"IdComponent": "conta",
			"Component": {
				"ComponentType": "GET",
				"Parameters": {
					"Order": "08",
					"List": null,
					"Size": 10,
					"F3": null,
					"Required": false,
					"Picture": "@!",
					"Valid": null,
					"Messages": [],
					"CanChange": false
				},
				"ComponentLabel": "Número da Conta"
			},
			"ComponentContent": ""
		},
		{
			"ContentType": "String",
			"IdComponent": "Vendedor",
			"Component": {
				"ComponentType": "GET",
				"Parameters": {
					"Order": "10",
					"List": null,
					"Size": 6,
					"F3": "SA3",
					"Required": false,
					"Picture": "@!",
					"Valid": "ExistCpo('SA3',xValor)",
					"CanChange": true
				},
				"ComponentLabel": "Codigo de Vendedor"
			},
			"ComponentContent": ""
		},
		{
			"ContentType": "Logical",
			"IdComponent": "administrador",
			"Component": {
				"ComponentType": "CHECKBOX",
				"Parameters": {
					"Order": "11",
					"List": null,
					"Size": 1,
					"F3": null,
					"Required": null,
					"Picture": null,
					"Valid": null,
					"CanChange": true
				},
				"ComponentLabel": "Administrador"
			},
			"ComponentContent": false
		},
		{
			"ContentType": "String",
			"IdComponent": "IDFilialProtheus",
			"Component": {
				"ComponentType": "GET",
				"Parameters": {
					"Order": "09",
					"List": null,
					"Size": "FWSizeFilial()",
					"F3": "SM0",
					"Required": false,
					"Picture": null,
					"Valid": null,
					"CanChange": true,
					"Trigger": null,
					"Messages": []
				},
				"ComponentLabel": "Filial"
			},
			"ComponentContent": ""
		},
		{
			"ContentType": "Logical",
			"IdComponent": "isCripto",
			"Component": {
				"ComponentType": "CheckBox",
				"Parameters": {
					"Order": "04",
					"List": null,
					"Size": 1,
					"F3": null,
					"Required": null,
					"Picture": null,
					"Valid": null,
					"CanChange": true,
					"Trigger": null,
					"visible": false,
					"IniPad": ".F."
				},
				"ComponentLabel": "Esta criptografada"
			},
			"ComponentContent": false
		}
	],
	"LayoutVersion": 3.1,
	"PosValid": {
		"Condition": "IIF(!oModel:GetValue('MIHDETAIL','isCripto') .OR. oModel:GetModel('MIHDETAIL'):IsFieldUpdated('SENHA'),oModel:LoadValue('MIHDETAIL','SENHA',ChavePBKDF2( Alltrim(oModel:GetValue('MIHDETAIL','SENHA')),Alltrim(oModel:GetValue('MIHDETAIL','cpf')) )),.T.),IIF(GetSrvVersion() >= '20.3.2.3'  .AND. (oModel:GetOperation() == 3 .Or. oModel:GetOperation() == 4),oModel:LoadValue('MIHDETAIL','isCripto',.T.),.T.)"
	}
}
Layout de envio Operador Loja
{
	"idRetaguardaPerfil": "&self:oPublica['perfil']",
	"nome": "&self:oPublica['nome']",
	"cpf": "&self:oPublica['cpf']",
	"login": "&self:oPublica['login']",
	"senha": "&IIF(self:oPublica['isCripto'],' ',self:oPublica['senha'])",
	"senhaCriptografada": "&IIF(self:oPublica['isCripto'],self:oPublica['senha'],'')",
	"administrador": "&IIF(self:oPublica['administrador'] == .T., 1,0)",
	"situacao": "&IIF(self:oPublica['MIH_ATIVO'] == '1' .and. self:cEvento == '1', 1, 0)",
	"sequencial": 0,
	"id": "&self:oPublica['MIH_ID']",
	"idInquilino": "&self:oConfAssin['inquilino']",
	"idRetaguarda": "&self:oPublica['MIH_ID']",
	"dataAtualizacao": "&self:oPublica['MIH_DATALT']",
	"dataCadastro": "&self:oPublica['MIH_DATINC']",
	"IdProprietario": "&LjRetComp( PadR( self:oPublica['IDFilialProtheus'], TamSx3('A3_FILIAL')[1] ),'CADASTRO DE LOJA')",
	"loteOrigem": "&Self:cLote",
	"lote": "string",
	"configPSH": {
		"Version": "2.0"
	}
}

05. ASSUNTOS RELACIONADOS