segunda-feira, 20 de abril de 2009

Lógica para carregar o TRX_DATE da RA_CUSTOMER_TRX_ALL

E ai pessoal, blz???

Uma dica legal que é pouco encontrada na em sites, é qual a lógica do EBS para colocar a data da nota de saída (TRX_DATE da RA_CUSTOMER_TRX_ALL).

Se você acha que sempre é o SYSDATE, tome cuidado!!! Nem sempre é assim... a lógica é simples:

Bom, o primeiro ponto da lógica é simples... se o GL_DATE não estiver nulo é ele...

Se o GL_DATE estiver nulo, ai tem que verificar o se como esta flegado o campo Data de Derivação da nota na tabela de Source (DERIVE_DATE_FLAG da RA_BATCH_SOURCES_ALL):
----> Se for Y e o SHIP_DATE_ACTUAL não estiver nulo, esse é o cara!!!
----> Se for Y e o SHIP_DATE_ACTUAL estiver nulo e o SALES_ORDER_DATE não estiver nulo, então esse é o cara!!!
----> Se for Y, o SHIP_DATE_ACTUAL e o SALES_ORDER_DATE forem nulo é a vez do SYSDATE ser o cara!!!
----> Se for N, o SYSDATE é a data da nota!!!

Pra quem ainda não entendeu nada que disse em português, quem sabe entende algo em "PL/SQLguês"... rs


IF GL_DATE IS NOT NULL THEN
TRX_DATE := GL_DATE;
ELSE

SELECT DERIVE_DATE_FLAG
INTO V_DERIVE_DATE_FLAG
FROM RA_BATCH_SOURCES_ALL
WHERE NAME = 'SOURCE';

IF NVL(V_DERIVE_DATE_FLAG,'N') = 'Y' THEN

IF SHIP_DATE_ACTUAL IS NOT NULL THEN
TRX_DATE := SHIP_DATE_ACTUAL;

ELSIF SALES_ORDER_DATE IS NOT NULL THEN
TRX_DATE := SALES_ORDER_DATE;

ELSE

TRX_DATE := SYSDATE;

END IF;

ELSE

TRX_DATE := SYSDATE;

END IF;

END IF;



Absss

Nenhum comentário:

Postar um comentário