Most of the
times we would have faced a requirement of having Dynamic prompt table for
Record Fields. Also PeopleSoft itself very much utilizes Dynamic Prompt table.
How can we achieve the same in our project????
Here we go
This is accomplished by 2 ways
In this method,
Prompt table property of Record
Fields should be assigned with %EDITTABLE value. Actually what does
it mean????
Prompt Table value for the Record Field is populated from the Record Field DERIVED.EDITTABLE value. The Record Field DERIVED.EDITTABLE should be assigned with value either in one of the Peoplecode events (Either in FieldChange or FieldEdit or RowInit events). This is simply done by
DERIVED.EDITTABLE = "PERSON_NAME";
Note: EDITTABLE Field should be present in the SAME Page, where Record Field (In this case, The Field is nothing but EMPLID) is also referred. If the Record Field is not coming under Component Search Record Field, there is no need for placing the EDITTABLE field in the Page.
For more details you can refer this article.
2. Usage of Dynamic Views
As we know, while creating Dynamic view, there is no need to specify the SQL. This SQL should be generated dynamically and the same should be assigned to the Record Field.
Say for
example, if we see the above Record Field TASK_PROFILE_ID, it is assigned with
dynamic prompt table view TL_TSKGRP_DVW and this view TL_TSKGRP_DVW is
dynamically initialized by the following Peoplecode, which can be assigned both
in FieldChange and RowInit events of the Record Field TASK_PROFILE_ID.
RECORDNAME.TASK_PROFILE_ID.SqlText = "SELECT T.TASKGROUP, T.TASK_PROFILE_ID, T.DESCR FROM PS_TL_TSKGRP_PRF_W T WHERE T.TASKGROUP = '" | &TSKGRP | "' AND T.EFFDT =(SELECT MAX(T1.EFFDT) FROM PS_TL_TSKGRP_PRF_W T1 WHERE T1.TASKGROUP = T.TASKGROUP AND T1.TASK_PROFILE_ID=T.TASK_PROFILE_ID AND T1.EFFDT<= %datein( '" | &maxdate | "') )";
Both &TSKGRP, &maxdate are dynamic bind parameters.
Here we go
This is accomplished by 2 ways
- Using EDITTABLE fields for Prompt Table
- Using Dynamic Views
Prompt Table value for the Record Field is populated from the Record Field DERIVED.EDITTABLE value. The Record Field DERIVED.EDITTABLE should be assigned with value either in one of the Peoplecode events (Either in FieldChange or FieldEdit or RowInit events). This is simply done by
DERIVED.EDITTABLE = "PERSON_NAME";
Note: EDITTABLE Field should be present in the SAME Page, where Record Field (In this case, The Field is nothing but EMPLID) is also referred. If the Record Field is not coming under Component Search Record Field, there is no need for placing the EDITTABLE field in the Page.
For more details you can refer this article.
2. Usage of Dynamic Views
As we know, while creating Dynamic view, there is no need to specify the SQL. This SQL should be generated dynamically and the same should be assigned to the Record Field.
RECORDNAME.TASK_PROFILE_ID.SqlText = "SELECT T.TASKGROUP, T.TASK_PROFILE_ID, T.DESCR FROM PS_TL_TSKGRP_PRF_W T WHERE T.TASKGROUP = '" | &TSKGRP | "' AND T.EFFDT =(SELECT MAX(T1.EFFDT) FROM PS_TL_TSKGRP_PRF_W T1 WHERE T1.TASKGROUP = T.TASKGROUP AND T1.TASK_PROFILE_ID=T.TASK_PROFILE_ID AND T1.EFFDT<= %datein( '" | &maxdate | "') )";
Both &TSKGRP, &maxdate are dynamic bind parameters.