欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

Inside Dynamics Axapta源代码赏析(四)

发布时间:2023/12/1 编程问答 35 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Inside Dynamics Axapta源代码赏析(四) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
第八章:Developing Applications Using Business Connector
这一章的代码主要演示如何通过Business Connector与Axapta交互
在Dynamics Axapta的客户端安装目录中找到Microsoft.Dynamics.BusinessConnectorNet.dll这个文件,添加到VS.NET的工程中.
1.HelloWorldBC.cs

class HelloWorldBC
    
{
        
static void Main(string[] args)
        
{
            Axapta ax;

            
// Log on to Dynamics AX
            ax = new Axapta();

            
try
            
{
                ax.Logon(
nullnullnullnull);
            }

            
catch (Exception)
            
{
                Console.WriteLine(
"Exception occurred during logon");
            }

            
            Console.WriteLine(
"Hello World!");
            
            
// Log off from Dynamics AX
            ax.Logoff();

        }

    }
好久没用VS2005了,今天用了一下,智能提示忒爽了,Axapta编辑器也快点好起来吧......
搞不清楚四个参数都填null是怎么找到AOS的?本来想用Reflector反编译一下Microsoft.Dynamics.BusinessConnectorNet.dll,结果出来的是乱七八糟的东西,唉,忒不友好了......
2.AccessingDataBC.cs
遍历所有的料品,并打印料品Id和料品名称.
 // Instantiate a Dynamics AX record object for the 
            
// record we want to work with
            AxaptaRecord axRecord = ax.CreateAxaptaRecord("InventTable");
            
            
// Execute a query against the record 
            axRecord.ExecuteStmt("select * from %1");

            
// Loop through the returned records
            
// Extract the data from two fields for each record
            while (axRecord.Found)
            
{
                invItemName 
= axRecord.get_Field(invItemNameField);
                invItemId 
= axRecord.get_Field(invItemIdField);

                Console.WriteLine(invItemId 
+ "\t" + invItemName);

                
// Go to the next record
                axRecord.Next();
            }
3.InvokingBusinessLogicBC.cs
调用Axapta中的静态方法.
 // Invoke the CallStaticClassMethod managed class
                
// Provide the X++ class name and method to execute
                
// The return value is placed into returnValue
                returnValue = ax.CallStaticClassMethod("InventoryManager",
                            
"updateInventoryQty");

                
// Use the return value to take some action
                if((Boolean)returnValue)
                    Console.WriteLine(
"Inventory quantity updated successfully");
                
else
                    Console.WriteLine(
"Inventory quantity update failed");

其中的类InventoryManager在工程InsideDynamicsAXChapter8中定义.

这些连接和简单的操作倒还可以,不过Axapta的接口和SDK写得确实不甘恭维......

转载于:https://www.cnblogs.com/Farseer1215/archive/2006/09/26/515255.html

总结

以上是生活随笔为你收集整理的Inside Dynamics Axapta源代码赏析(四)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。