NC接口开发,主要有两个功能,一个是批量导入凭证和全科目对账
1、批量导入凭证
导入凭证有一个科目对照关系,如果没在科目对照里边的,就不会进行导入。
思路:
1)、读取FTP服务器上的文件,写入临时表(bank_vouchertemp)表,写入之前需要校验科目、机构、日期、金额,机构存储的是主键。
2)、写入凭证
按机构进行查询临时凭证表,把对应的分录信息,封装凭证数据,过滤一些垃圾数据,查看是否默认制单、审核、记账,如果都是制单、审核、记账。
在调用NC的接口进行制单、审核、记账。
导入凭证的大体思路就是这些,其他细节如、校验导入的数据,需要根据实际情况而定。
2、全科目对账
全科目对账有一个对账规则,是根据对账规则里边的科目信息进行对账
1)、读取FTP原系统穿过来的文件,称之为余额文件,是全科目每天累加的余额,先把这些数据写入临时表中。
2)、循环遍历对照机构,按机构进行查询原系统余额,在查询NC系统的余额
3)、封装对账数据
4)、对账,保存对账结果,进行下一个机构的对账。
封装对账数据时,根据不同的设计来进行封装,封装对账数据也是比较麻烦的一件事。
我在导入和对账中遇到的问题
1、导入凭证是提示科目不存在
错误原因:
1)没有在科目对账中添加科目对照
2)科目不存在
3)科目存在,但是科目的生效日期在导入日期之后
2、FTP报421错误
错误原因:
FTP服务器关闭不正确,导致长时间的连接状态,FTP服务器强制退出。这个错误主要出现在自动导入凭证和自动对账的时候,在自动对账或导入凭证 的时候,要 先关闭FTP连接,在进行自动对账和自动导入凭证,对账和导入都是比较耗时的操作,如果等导入完凭着和对账完,在关闭FTP连接,就会出现FTP421错误。
3、对账不平衡
错误原因:
1)数据本身的问题
2)数据都没问题,科目或者科目方案可能由问题。
3)查询余额的方式有问题,查询余额必须要SUM有的可能有多条记录,不sum就会不平
4)在封装对账数据时,出现没有取到余额,但是NC里边有余额,这个要根据具体的情况进行DEBUG调试,我遇到的情况是,在封装对账数据是,查询的科目
不对,查询了一大堆垃圾数据,导入封装对账数据NC余额这边为0
以上我是做NC57或63对账的一些分享,希望多多交流!