1. Q: Does JDE have mapping of fields from user screen to JDE table?
A: Yes - inside the programs / code
2. Q: Is there is a way to extract data dictionary via SQL
A: Yes. Here's one way (9.1 Oracle PL/SQL)
--------------------------------------
ACCEPT cTablename CHAR DEFAULT * PROMPT 'Enter the Table Name to generate a view for (FXXXXX): '
ACCEPT cOwner CHAR DEFAULT PRODDTA PROMPT 'Enter the Production Environment Table Owner: '
select dtc.column_name, replace(NVL(d.frowdi,dtc.column_name),' ','') JDE_NAME,
d.frcdec Decimal_Places, d.frowtp JDE_Data_Type, d2.frdsca Description
from dba_tab_columns dtc,
DV910.f98711 c, DD910.f9210 d, DD910.f9203 d2
where dtc.owner = '&cOwner'
and dtc.table_name = '&cTablename'
and dtc.column_name=replace(RTRIM(UPPER(c.tdsqlc)),'@','_1')
and c.tdobnm = '&cTablename'
and RTRIM(SUBSTR(c.tdsqlc,3)) = RTRIM(d.frdtai)
and d.frdtai = d2.frdtai and d2.frsyr = ' ' and d2.frscrn = ' '
order by dtc.owner, dtc.table_name, column_id;
--------------------------------------
Instead of querying the database for the table structure you can get that from PD910.F98711, then join DD910.F9210 (on OBND to FRDTAI) and DD910.F9203 (on OBND to FRDTAI and FRSCRN = ' ' and FRSYR = ' '). It will execute much faster that way but I already had the above handy.