0

我正在尝试使用提供的 ExceltoCI 实用程序将一些数据加载到自定义表 PeopleSoft 中。我有一个单键 -EMPLID 的记录;我们预计每位员工只有一行,没有生效日期或类似的东西。除了 EMPLID,我还有大约 9 个数字字段。上传过程似乎可以正常工作 - 每行数据的状态为绿色 OK,但是对于某些数据行,当我在线或在我的 SQL 工具中检查时,数据不存在。当电子表格的数据输入选项卡中的所有 9 个数字字段都设置为 0 时,会发生这种情况。所有其他行加载正常。我可以在线输入包含全零的数据。我注意到,如果我将其中一个数字字段的默认值设置为 1,则所有内容都会通过该实用程序加载(但如果我将其设置为 0 则不会加载)。

提前致谢!

4

3 回答 3

0

这就是我最终要做的事情:在其中一个数字字段上,我在 RowInit 事件中放置了一些 PeopleCode:

如果无(MARKET_PAY.MARKET_LOW)则 MARKET_PAY.MARKET_LOW = 1;MARKET_PAY.MARKET_LOW = 0;万一;

它完成了我所追求的目标,但感觉就像一个杂物——如果有人能提供更优雅或“适当”的解决方案,我将不胜感激。

于 2013-06-28T15:56:43.017 回答
0

出于历史目的,PeopleSoft 以一种特殊的方式处理空值。空数值存储为零,空文本值存储为单个空格 (" ")。空日期/时间/日期时间和长字符字段是实际的数据库空值。

您正在描述一个包含关键字段以及仅数字字段的同级表。但是,从技术上讲,PeopleTools 会将其视为子表,当所有非关键字段为“空”时,不会插入子表。当所有值都为零时,您的 kludge 会处理物理插入行的要求,但我可以想到您可以做的另外两件事:

  1. 如果您不定期使用 Excel-to-CI(即,它仅用于初始或不频繁的数据加载),您可以编写一个简单的语句以将每个 EMPLID 中尚未存在的全零行插入到表中桌子。(如果在实时使用中不需要该表,例如,您可以将此 INSERT 设置为每晚运行的数据库作业。)

  2. 如果可行,范围相对有限,并且从工作量或性能的角度来看并不令人望而却步,您可以将涉及此表的任何连接更改为外部连接,将潜在的 NULL 值合并为零。

还有第三种选择:将字段添加到您知道将始终具有值的记录。例如,您可以添加最后修改的时间戳/用户对。但是,这是一种数据模型设计选择,只有在添加的字段是您真正需要跟踪的内容时才有意义。换句话说,它与您当前的解决方案一样笨拙,但可以为数据的上下文增加一些价值。

于 2013-08-19T09:57:55.387 回答
0

将 ,0 放在 exceltoci 字段中。它将加载并保存。导致这种情况的是 excel 电子表格和幕后的 vba 代码。

于 2017-06-07T16:46:25.930 回答