FAQ > 金融建模 > 第三方交互 > MatLab

Q:matlab通过RemoteCallFunc调用天软函数并进行传参时引发tsl运行报错    

  • A:
    现象描述:
    如执行下列调用
    d=ts.RemoteCallFunc('GetBKByDate',{'SH000300',today()-693960});
    返回tsl程序报错信息如下:
    function:GetBKByDate:GetBKByDatesub:line 46:instruction:usercall: 执行函数 DateToInt 出错。
    从这里大致可判断出参数传入到天软时不合理。

    测试:
    测试RemoteCallFunc调用不需要传参的示例,如
    d=ts.RemoteCallFunc('today',{});
    若该调用能返回正确结果,则说明交互中传参存在异常。

    原因:
    经我方调试发现确认一些matlab版本在送入COM接口的数组数据是错误的,请用户升级到修订完错误的新版本(更新版本最新补丁)或向第三方软件提供商寻求支持方案。

    如果想继续使用当前版本,也可以通过改用RemoteExecute完成交互,如:
    将d=ts.RemoteCallFunc('GetBKByDate',{'SH000300',today()-693960});
    改用
    d=ts.RemoteExecute('return GetBKByDate("SH000300",today());');

    目前收集到的相关表现的版本有:
    1、Matlab 2024A 在通过RemoteCallFunc传参时,传到天软中总是nan,而RemoteExecute交互正常。需升级到update7以更正其BUG。