zoukankan      html  css  js  c++  java
  • 向COM方法中传递数组参数

    一个客户的销售订单和采购订单要求工作流审核才能发货或收货,要求跟OA系统的工作流整合,在Axapta中启动流程,在工作流中签核,签核完毕后再回写Axapta相应单据的信息.
    今天弄了一下,由于OA是用VB+ASP写的,所以在启动流程的时候需要调用COM,Axapta提供了COM这个类来调用COM,实现起来倒挺容易的,不过在传递数组参数的时候遇到了些麻烦.
    工作流的COM提供的启动流程的方法是用字符串数组的形式接收流程相关信息的,开始的时候用如下代码调用:
     COM workFLow;
        str 
    100 dataArray[1];
       ;

        dataArray[
    0= "orderNo = FlowTest";
        workFLow 
    = new Com("workFlow");
        workFLow.startProcess(dataArray);
    它告诉我:COM(Object),Method called startprocess with invalid parameter.
    后来想想也是,Axapta的数组也够怪异的,跟VB的数组肯定不是一回事,后来看了一下还好有一个COMVariant可以用一下,用COMVariant实现一个数组就run起来了.代码如下:
    Array arr = new Array(Types::Class);
        COMVariant comVar;
        ;
        comVar 
    = new COMVariant();
        comVar.bStr(strFmt(
    "PackNo=FlowTest");
        arr.value(
    1,comVar);

        comVar 
    = new COMVariant();
        comVar.safeArray(arr,COMVariantType::VT_VARIANT);
    然后把得到的comVar作为参数传进去就OK了.
  • 相关阅读:
    Javascript Fromdata 与jQuery 实现Ajax文件上传以及文件的删除
    Javascript Fromdata 与jQuery 实现Ajax文件上传
    web.xml配置
    servlet反射、生命周期、接口
    Tomcat
    java--反射原理及操作
    CSS基础--属性选择器、伪类选择器
    webStom常用快捷键备忘
    HTML5--sessionStorage、localStorage、manifest
    ES6
  • 原文地址:https://www.cnblogs.com/Farseer1215/p/528562.html
Copyright © 2011-2022 走看看