on 07-22-2021 2:28 PM
Bom Dia. Estou fazendo uma procedimento para impedir que alguns usuários editem o cadastro de parceiros de negócios. Um procedimento executa sem erros, porem quando você validar no SAP ao alterar um campo aparece uma mensagem de erro que não está prevista e quando tento alterar os campos que ainda não estão sendo validados no procedimento eu não consigo.
Se eu comentar o SELECT da tabela CRD1 e da tabela ACR1 um procedimento funciona perfeitamente.
Bom Dia. Estou fazendo um procedimento para evitar que alguns usuários editem o cadastro de parceiros de negócios. Uma procedure roda sem erros, porém quando vou validar no SAP ao alterar um campo aparece uma mensagem de erro que não era esperada e quando tento alterar campos que ainda não estão sendo validados na procedure não consigo.
Se eu comentar a tabela SELECT CRD1 e a tabela ACR1, o procedimento funciona perfeitamente.
IF (: iErrorCode = 0) AND (: sObjTyp = '2') AND (: sTraTyp = 'U') ENT & Atilde; O
SELECIONE
IFNULL (pn. "CreditLine", 0),
IFNULL (pn. "GroupNum", 0),
(pn. "CardType"),
(pn. "CardName"),
IFNULL (pn. "CardFName", ''),
(pn. "Telefone1"),
(pn. "Telefone2"),
(pn. "Celular"),
IFNULL (pn. "E_Mail", ''),
(pn. "CmpPrivate")
INTO LimiteCred, CondPagto, Tipo, NomePN, NomeEstrangeiro, Tel1, Tel2, Cel, Email, TipoPN
DE "OCRD" pn
ONDE pn. "CardCode" =: sKeyVal;
SELECIONE O TOP 1
IFNULL (pn. "CreditLine", 0),
IFNULL (pn. "GroupNum", 0),
(pn. "CardType"),
(pn. "CardName"),
IFNULL (pn. "CardFName", ''),
(pn. "Telefone1"),
(pn. "Telefone2"),
(pn. "Celular"),
IFNULL (pn. "E_Mail", ''),
(pn. "CmpPrivate")
INTO OldLimiteCred, OldCondPagto, OldTipo, OldNomePN, OldNomeEstrangeiro, OldTel1, OldTel2, OldCel, OldEmail, OldTipoPN
DE "ACRD" pn
ONDE pn. "CardCode" =: sKeyVal
ORDER BY pn. "LogInstanc" DESC;
SELECIONE
IFNULL (pn. "Endereço & ccedil; o & ccedil; o", ''),
IFNULL (pn. "Rua", ''),
IFNULL (pn. "Bloco", ''),
IFNULL (pn. "ZipCode", ''),
IFNULL (pn. "Cidade", ''),
IFNULL (pn. "Condado", ''),
IFNULL (pn. "Estado", ''),
IFNULL (pn. "Edif & iacute; cio", ''),
IFNULL (pn. "Endereço & ccedil; o & ccedil; o2", ''),
IFNULL (pn. "Endereço & ccedil; o & ccedil; o3", ''),
IFNULL (pn. "AddrType", ''),
IFNULL (pn. "StreetNo", '')
INTO Endereco1, Rua, Quadra, Cep, Cidade, Munic & iacute; pio, Estado, Predio, Endereco2, Endereco3, TipoEnd, Numero
DE "CRD1" pn
ONDE pn. "CardCode" =: sKeyVal;
SELECIONE O TOP 1
IFNULL (pn. "Endereço & ccedil; o & ccedil; o", ''),
IFNULL (pn. "Rua", ''),
IFNULL (pn. "Bloco", ''),
IFNULL (pn. "ZipCode", ''),
IFNULL (pn. "Cidade", ''),
IFNULL (pn. "Condado", ''),
IFNULL (pn. "Estado", ''),
IFNULL (pn. "Edif & iacute; cio", ''),
IFNULL (pn. "Endereço & ccedil; o & ccedil; o2", ''),
IFNULL (pn. "Endereço & ccedil; o & ccedil; o3", ''),
IFNULL (pn. "AddrType", ''),
IFNULL (pn. "StreetNo", '')
INTO OldEndereco1, Old Street, OldQuadra, OldCep, OldCidade, OldCounty, OldEstado, OldPredio, OldEndereco2, OldEndereco3, OldTipoEnd, OldNumero
DE "ACR1" pn
ONDE pn. "CardCode" =: sKeyVal;
(SELECIONE t0. "USER_CODE" INTO usuario
DE "OUSR" T0 onde t0. "USERID" =
(SELECIONE IFNULL (t1. "UserSign2", t1. "UserSign")
DE "OCRD" t1 ONDE t1. "CardCode" =: sKeyVal
)
);
IF ((LimiteCred <> OldLimiteCred) OR (CondPagto <> OldCondPagto) OU (Tipo <> OldTipo) OR (NomePN <> OldNomePN)
OU (NomeEstrangeiro <> OldNomeEstrangeiro) OU (Tel1 <> OldTel1) OU (Tel2 <> OldTel2) OR (Cel <> OldCel)
OU (Email <> OldEmail) OU (TipoPN <> OldTipoPN) OU (Endereco1 <> OldEndereco1) OU (Rua <> Old Budap) OR (Quadra <> OldQuadra)
OR (Cep <> OldCep) OR (Cidade <> OldCidade) OR (County <> OldCounty) OR (Estado <> OldEstado) OR (Predio <> OldPredio)
OR (Endereco2 <> OldEndereco2) OR (Endereco3 <> OldEndereco3) OU (TipoEnd <> OldTipoEnd) OR (Numero <> OldNumero))
ENT & Atilde; O
--IF (usuario <> 'gerente' AND usuario <> 'n.brito' AND usuario <> 'p.rolim' AND usuario <> 'c.santos') ENT & Atilde; O
IF (usuario <> 'n.brito' AND usuario <> 'p.rolim' AND usuario <> 'c.santos' / * AND usuario <> 'gerente' * /) ENT & Atilde; O
iErrorCode: = '21';
sErrorMessage: = 'Usu & aacute; rio sem permiss & atilde; o para alterar o cadastro do PN. ';
FIM SE;
FIM SE;
FIM SE;
<br>
Erro no Sap B1
[SAP AG][LIBODBCHDB][HDBODBC] General error;1300 fetch returns more than requested number of rows: search table error: "TESTE-INDUSTRIA", "SBO_SP_TRANSACTIONNOTIFICATION":line 38 col 4 (at pos 1186):[1300](range3) fetch returns more than requeste...
Eu segui este caminho "TESTE-INDUSTRIA", "SBO_SP_TRANSACTIONNOTIFICATION":line 38 col 4" e me deparei com isto:
IF :error = 0 THEN CALL "P_PS" ( :object_type, :transaction_type, :num_of_cols_in_key, :list_of_key_cols_tab_del, :list_of_cols_val_tab_del, error, error_message ); END IF;
Não sei como resolver, alguém pode me ajudar?
Bom dia gente. Um amigo me orientou a colocar todos os Select como TOP 1e isso resolveu.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
101 | |
14 | |
10 | |
5 | |
4 | |
3 | |
3 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.