解释下Peoplesoft的这段代码 Component array of array of any &tmpArray; Local Record &rec1, &rec2; &rec1 = CreateRecord(Record.HIK_IPSANRS_TBL); &rec2 = CreateRecord(Record.HIK_IPSAN_TBL); Local Rowset &rsLvl1, &rsDtl; Local number &i, &j; Local Row &row; &rsLvl1 = GetLevel0()(1).GetRowset(Scroll.WPS_STR_INF_TBL); For &i = 1 To &rsLvl1.ActiveRowCount &rsDtl = &rsLvl1(&i).GetRowset(Scroll.WPS_STR_DTL_TBL); For &j = 1 To &rsDtl.ActiveRowCount &row = &rsDtl(&j); If Not &row.IsDeleted Then If All(&row.WPS_STR_DTL_TBL.WPS_GP_AMT_ID.Value) Then &rec1 = CreateRecord(Record.WPS_IPSANRS_TBL); &rec1.WPS_GP_AMT_ID.Value = &row.WPS_STR_DTL_TBL.WPS_GP_AMT_ID.Value; &rec1.EFFDT.Value = &row.WPS_STR_DTL_TBL.EFFDT.Value; If &rec1.SelectByKey() Then &rec1.WPS_GP_AMT_ID.Value = &row.WPS_STR_DTL_TBL.WPS_GP_AMT_ID.Value; &rec1.EFFDT.Value = &row.WPS_STR_DTL_TBL.EFFDT.Value; &rec1.STATUS.Value = &rsLvl1(&i).WPS_STR_INF_TBL.STATUS.Value; &rec1.Update(); Else &rec1.WPS_GP_AMT_ID.Value = &row.WPS_STR_DTL_TBL.WPS_GP_AMT_ID.Value; &rec1.EFFDT.Value = &row.WPS_STR_DTL_TBL.EFFDT.Value; &rec1.STATUS.Value = "A"; &rec1.Insert(); End-If; &rec2 = CreateRecord(Record.WPS_IPSAN_TBL); &rec2.WPS_GP_AMT_ID.Value = &row.WPS_STR_DTL_TBL.WPS_GP_AMT_ID.Value; &rec2.EFFDT.Value = &row.WPS_STR_DTL_TBL.EFFDT.Value; &rec2.WPS_STORID.Value = &row.WPS_STR_DTL_TBL.WPS_STORID.Value; &rec2.WPS_GP_WAGECODE.Value = &row.WPS_STR_DTL_TBL.WPS_GP_WAGECODE.Value; If Not &rec2.Insert() Then &rec2.Update(); End-If; End-If; End-If; End-For; End-For;
时间: 2024-03-28 19:40:45 浏览: 96
PeopleSoft PeopleTools Tips & Techniques.pdf
5星 · 资源好评率100%
这段代码是一个PeopleCode脚本,用于在PeopleSoft系统中进行数据操作。
首先,定义了一个Component类型的数组变量&tmpArray。然后,创建了两个Record类型的本地变量&rec1和&rec2,分别对应PeopleSoft中的两个表格。接着,创建了两个Rowset类型的本地变量&rsLvl1和&rsDtl,并定义了两个number类型的本地变量&i和&j。
在循环中,通过GetLevel0()方法获取Level0的第一行,并通过GetRowset()方法获取Scroll.WPS_STR_INF_TBL的Rowset。然后,循环遍历&rsLvl1中的每一行,再通过GetRowset()方法获取Scroll.WPS_STR_DTL_TBL的Rowset。接着,在&rsDtl中循环遍历每一行,如果当前行未被删除且满足一定条件,则执行下面的操作。
首先,判断&row中的WPS_STR_DTL_TBL.WPS_GP_AMT_ID.Value是否全部存在,如果是,则创建一个新的&rec1记录,并将一些属性值赋给它。如果该记录已存在于数据库中,则更新它,否则插入新记录。
然后,创建一个新的&rec2记录,并将一些属性值赋给它。如果该记录不存在于数据库中,则插入新记录,否则更新它。
最后,循环结束后,该脚本会执行一些数据操作,例如更新或插入记录到数据库中。
阅读全文