暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 应用程序引擎中PeopleCode中的无效日期

askTom 2017-05-24
711

问题描述

我收到以下错误:

开始主-非标题四 (0,0)

日期无效。(180,112) UWX_FA_NOTIV.MAIN.GBL.default.1900-01-01.GetStuds.OnExecute PCPC:2263声明: 4

在步骤UWX_FA_NOTIV.MAIN.GetStuds (PeopleCode) -RC = 8 (108,524) 处终止的过程3136112

进程 % s在步骤 % s.% s (操作 % s) -RC = % s


这是我的人民代码:
全局字符串 & sInst,& sAidYear,& sFilePath;
本地整数 & iStudentCount,& iUpdateCount;
本地字符串 & PSEmplid,& PSItemType,& PSItemTerm,& PSItemDescr;
本地字符串 & HxEmplid,& HXItemTerm,& HxItemType,& hxmoduce;
本地字符串 & outFilePath,& 文件名;
本地日期和PSItemEffDt;
本地号码和PSSumItmAmt;
本地SQL & SQL1;

MessageBox(0,“”,0,0,“开始主-非标题IV”);


/* 获得合格学生-学生节点 */
/* jcd 09/28/2016 UWM_FA_63_225添加机构,aid_year绑定变量来查询 */
& SQL1 = CreateSQL (“从PS_ITEM_SF A中选择不同的A.EMPLID,其中A.ITEM_TERM IN (从PS_AID_YR_CAR_TERM B中选择B.STRM,其中B.AID_YEAR =” | “| & sAidYear |” “'“ | ”和B.ACAD_CAREER IN (从PS_UWX_FA_SETUP A1中选择a1.acad_care_ 职业)) 和A.ITEM_TYPE IN (从PS_UWX_FA_NTIV_ITM A2中选择A2.ITEM _ TYPE,其中A2.INSTITUTION = :1和A2.AID _ YEAR = :2) 按A.EMPLID,A.ITEM_TYPE“,& sInst,& sAidYear) 分组;
同时 & SQL1.Fetch(& PSEmplid);

/* jcd 09/28/2016 UWM_FA_63_225添加机构,aid_year绑定变量来查询 */
Sqleletec (“从PS_ITEM_SF A,PS_ITEM_TYPE_TBL B中选择不同的A.ITEM_TYPE,A.ITEM_AMT *-1),TO_CHAR(A.Item_effective _dt,'dd-MON-YYYY'),其中A.ITEM_TYPE = B.ITEM_TYPE和A.EMPLID = :1和A.ITEM_TERM IN (从PS_AID_YR_CAR_TERM B中选择B.STRM,其中B.AID_YEAR =" | & sAidYear | "'" | "和B.ACAD_CAREER IN (从PS_UWX_FA_SETUP A1中选择a1.acad_career)) 和A.ITEM_TYPE IN (从PS_UWX_FA_NTIV_ITM中选择A2.ITEM _ 类型a2其中A2.INSTITUTION = :2和A2.AID _ YEAR = :3) 按A.ITEM_TYPE,A.ITEM_TERM,B.DESCR,A.ITEM_EFFECTIVE_DT",& PSEmplid,& sInst,& sAidYear,& PSItemType,& psitemeterm,& PSItemDescr,& PSSumItmAmt,& PSItemEffDt);

/* 检查是否尚未将学生发送到UWEX Flex FA */
SQLExec (“从PS_UWX_SF_NTIV_HX中选择不同的A.EMPLID,A.ITEM_TYPE,A.ITEM_TERM,SUM(A.ITEM_AMT),其中A.EMPLID = :1和A.AID_YEAR =:: 2由A.EMPLID,A.ITEM_TYPE,A.ITEM_TERM” 和PSEmplid,& sAidYear,& HxEmplid,& HxItemType,& HXItemTerm,& hxamousy);

如果全部 (& HxEmplid),则/* 学生确实存在 */
/* 学生在历史中确实存在-> 检查奖励信息是否更改 */

/* 检查奖励信息是否更改 (金额) */
如果 & HXAccept <> & PSSumItmAmt那么
/* 在此处添加逻辑以将以下数据输出到CSV文件-EMPLID,AID_YEAR,ITEM_TERM,ITEM_TYPE,ITEM_AMT,ITEM_DESCR,ITEM_EFFECTIVE_DT和UWX_ITEM_STATUS = 已更新 */

UWX_FA_NTIV_AET.EMPLID = & PSEmplid;
UWX_FA_NTIV_AET.AID_YEAR = & sAidYear;
UWX_FA_NTIV_AET.ITEM_TERM = & PSItemTerm;
UWX_FA_NTIV_AET.ITEM_TYPE = & PSItemType;
UWX_FA_NTIV_AET.ITEM_DESCR = & PSItemDescr;
UWX_FA_NTIV_AET.ITEM_AMT = & PSSumItmAmt;
UWX_FA_NTIV_AET.ITEM_EFFECTIVE_DT = & PSItemEffDt;
UWX_FA_NTIV_AET.UWX_NTIV_STAT = "UPD";

如果 & PSSumItmAmt = 0,则
UWX_FA_NTIV_AET.UWX_NTIV_STAT = "CNC";
结束-如果;

/* 添加逻辑以输出到文档要求的XML文件 */
UWX_FA_NTIV_AET.AE_SECTION = “输出”;

/* 添加-& UpdateCount = & UpdateCount 1; */
& iUpdateCount = & iUpdateCount 1;

/* 添加逻辑以更新UWX_SF_NTIV_HX */
SQLExec (“更新PS_UWX_SF_NTIV_HX SET ITEM_AMT = :1,UWX_NTIV_STAT = :2,其中EMPLID = :3和ITEM_TYPE = :4和AID_YEAR = :5和ITEM_TERM = :6”,& PSItemAmt,“UPD”,& PSEmplid,& PSItemType,& sAidYear,& pemsitterm);

其他
/* 不执行任何操作-金额匹配 */
结束-如果;

其他

如果 & psumitmamt <> 0,则
/* 消息框 (0,"",0,0,"> 学生在历史中不存在-& PSEmplid: "| & PSEmplid | "援助年 =" | & sAidYear); jcd 09/28/2016 UWM_FA_63_225。删除消息报告。*/
& StudentCount = & StudentCount 1;

& extStudID1 = & PSEmplid | 子字符串 (& Inst,3,3);
/* 在此处添加逻辑以将以下数据输出到CSV文件-EMPLID,AID_YEAR,ITEM_TERM,ITEM_TYPE,ITEM_AMT,ITEM_DESCR,ITEM_EFFECTIVE_DT和UWX_ITEM_STATUS = NEW */
UWX_FA_NTIV_AET.EMPLID = & PSEmplid;
UWX_FA_NTIV_AET.AID_YEAR = & sAidYear;
UWX_FA_NTIV_AET.ITEM_TERM = & PSItemTerm;
UWX_FA_NTIV_AET.ITEM_TYPE = & PSItemType;
UWX_FA_NTIV_AET.ITEM_DESCR = & PSItemDescr;
UWX_FA_NTIV_AET.ITEM_AMT = & PSSumItmAmt;
UWX_FA_NTIV_AET.ITEM_EFFECTIVE_DT = & PSItemEffDt;
UWX_FA_NTIV_AET.UWX_NTIV_STAT = "ADD";


MessageBox(0,"",0,0,"& PSEmplid =" | & PSEmplid);
MessageBox(0,"",0,0,"& sAidYear =" | & sAidYear);
MessageBox(0,"",0,0,"& PSItemTerm =" | & PSItemTerm);
MessageBox(0,"",0,0,"& PSItemType =" | & PSItemType);
MessageBox(0,"",0,0,"& PSItemDescr =" | & PSItemDescr);
MessageBox(0,"",0,0,"& PSSumItmAmt =" | & PSSumItmAmt);
MessageBox(0,",0,0," & PSItemEffDt = "| & PSItemEffDt);


/* 添加逻辑以输出到文档要求的XML文件 */
UWX_FA_NTIV_AET.AE_SECTION = “输出”;

/* 将奖励数据插入历史记录表中,以便将来可以对其进行检查 */
SQLExec (“插入到PS_UWX_SF_NTIV_HX(EMPLID,AID_YEAR,ITEM_TERM,ITEM_DESCR,ITEM_AMT,ITEM_EFFECTIVE_DT,UWX_NTIV_STAT) 值 (:1,: 2,: 3,: 4,: 5,: 6,: 7,: 8)” & PSItemType,& PSItemDescr,& PSItemAmt,& PSItemEffDt,“新”);
结束-如果;
结束-如果;


结束时;



专家解答

我对PeopleSoft或PeopleTools代码一无所知,但这是我的假设。

你在做

TO_CHAR(A.项目有效dT,'dd-MON-yyy')



& PSItemEffDt

但是这个变量已经定义为日期,所以你应该做:

A.项目有效d



& PSItemEffDt

因为否则您将进行隐式数据类型转换,这是 “无效日期” 错误的常见原因。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论