我是一名经验丰富的C#/ .NET开发人员,最近有机会成为Microsoft Dynamics(Navision)开发人员(培训,认证等都将由雇主支付).我从未参与任何与此动态有关的事情,所以我想问一下与C#/ .NET开发人员相比,成为Dynamics开发人员的感觉.在做出决定之前,我已经编制了一些我有兴趣知道的事情清单.请随时编辑列表.
C#/ .NET
Microsoft Dynamics
谢谢!
我正在使用Add Service ReferenceVisual Studio 2010中的功能将Navision Web服务添加到简单的Windows窗体应用程序中,生成引用但在代码内部存在重复的定义,这些定义会阻止代码编译,例如:
错误
命名空间"WindowsFormsApplication1.ServiceReference1"已经包含了"状态"下的定义:\垃圾桶\ WindowsFormsApplication1\WindowsFormsApplication1 \服务引用\ ServiceReference1\Reference.cs
在Reference.cs我的内心
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.1015")]
[System.SerializableAttribute()]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:microsoft-dynamics-schemas/page/salesheaderpage")]
public enum Status {
/// <remarks/>
Open,
/// <remarks/>
Released,
/// <remarks/>
Pending_Approval,
/// <remarks/>
Pending_Prepayment,
}
Run Code Online (Sandbox Code Playgroud)
和
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
[System.Runtime.Serialization.DataContractAttribute(Name="Status", Namespace="urn:microsoft-dynamics-schemas/page/salesheaderpage")]
public enum Status : int {
[System.Runtime.Serialization.EnumMemberAttribute()]
Open = 0,
[System.Runtime.Serialization.EnumMemberAttribute()]
Released = 1,
[System.Runtime.Serialization.EnumMemberAttribute()]
Pending_Approval = 2,
[System.Runtime.Serialization.EnumMemberAttribute()]
Pending_Prepayment = 3,
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试取消选中,Reuse types in referenced assemblies但在两种情况下仍然会生成重复的定义.
有任何想法吗?
编辑:页面是连接到标准表36(销售标题)的自定义页面
我们使用Mercurial作为C#和Progress代码的源代码控制.
我们现在正在开发微软的动态资产净值.没有内置的源代码控制,手动将代码放入/运出Mercurial存储库以进行版本控制很麻烦(并且容易出错).
我想知道是否有人使用Mercurial为NAV开发了一个本土的,集成的源控制系统.您可以分享哪些步骤和建议/想法?
我有一个文本字符串存储为BLOB数据库中的数据类型.我想通过SQL select查询提取它,但是我在转换/转换BLOB到可读时遇到问题text.
我试过例如
select convert(nvarchar(40),convert(varbinary(40),BLOBTextToExtract))
from [NavisionSQL$Customer]
Run Code Online (Sandbox Code Playgroud)
我想我需要类似的东西,但我无法弄清楚我需要做什么转换.有人可以给我一些指示吗?
问候
我来自C#背景,用来编程来控制所有低级的东西(微控制器和硬件相关的东西).我刚换了工作,需要学习编程Dynamics NAV.我一生都没有使用数据库繁重的应用程序,所以整个学习体验对我来说非常令人沮丧.
问题:
任何新手友好的网站,以便我可以从零学习C/AL?
我可以去的任何网站都有我可以复制和学习的小项目,ala CodeProject?(CodeProject的一些东西足够小,可以用于新手学习,虽然有些东西非常庞大..)
有推荐的书吗?
有什么建议可以帮助我学习吗?
我希望能够直接从 SQL Server 数据库读取Dynamics NAV 2013 表元数据,而无需 NAV 开发环境。
我可以使用如下查询查看二进制 SQL“图像”BLOB 列(使用 WHERE 子句进行适当的过滤):
SELECT
o.[Name],
m.[Object Type],
m.[Metadata], -- XML Metadata
m.[User Code], -- C# Metadata
m.[User AL Code] -- C/AL Metadata
FROM [Navision].[dbo].[Object Metadata] AS m
JOIN [Navision].[dbo].[Object] AS o
ON m.[Object ID] = o.[ID]
AND o.[Company Name] = 'YourCompanyName'
AND o.[Type] = 0 -- 0 is NAV Table Object Type
Run Code Online (Sandbox Code Playgroud)
我可以使用 .Net 代码或带有 SQL 驱动程序的快速脚本将来自 [元数据]、[用户代码] 和 [用户 AL 代码] 的二进制数据保存到文件中。我尝试使用 7-zip 解压缩,使用十六进制编辑器查看,以及 …
我是.NET开发人员,但在我们的组织中,我们还有几个Microsoft Dynamics NAV开发人员.目前他们没有使用任何源代码控制.我对NAV知之甚少,但据我了解,你可以编写NAV中的对象并从脚本导入.
既然如此,是否有人使用GIT与NAV?你有没遇到任何陷阱?我想知道这是否是一个很好的解决方案,建议他们,以及管理是否比使用Git with .NET(我发现相当容易)更复杂.
似乎NAV的潜在本质是抵制要求填充字段是强制性的.在我们的业务逻辑的情况下,必须填充某些字段以使数据有效.例如,客户记录必须至少包含姓名和电话号码.我搜索了很多地方,但没有找到合适的解决方案.那怎么能实现呢?
我正在尝试使用Curl从Microsoft Dynamics Nav中提取一些数据.
我可以通过我的浏览器在这个网址轻松访问它:http://kevans:(password)@192.168.0.30:8048/Sandbox/OData/它完全正常.
在Curl中,我试过这个:curl --ntlm -u kevans "http://192.168.0.30:8048/Sandbox/OData/" -v在提示符下输入我的密码,但它返回401 Unauthorized错误.
有什么需要做才能让Curl可用吗?
这是Curl的输出:
curl --ntlm -u kevans "http://192.168.0.30:8048/Sandbox/OData/" -v
Enter host password for user 'kevans':
* About to connect() to 192.168.0.30 port 8048 (#0)
* Trying 192.168.0.30...
* Adding handle: conn: 0x525fe0
* Adding handle: send: 0
* Adding handle: recv: 0
* Curl_addHandleToPipeline: length: 1
* - Conn 0 (0x525fe0) send_pipe: 1, recv_pipe: 0
* Connected to 192.168.0.30 (192.168.0.30) port 8048 (#0)
* Server auth …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个使用Dynamics NAV Odata提要的node.js脚本。
我的Dynamics NAV设置中同时有一个UserAccount / PW和一个Web服务访问密钥。
我一辈子都找不到如何正确验证身份的方法,无论是在标头中添加内容还是在URL查询中添加内容。我尝试使用'username:password @ server'格式。我尝试将其编码为base64并将其添加到“身份验证”值的标题中。
该文档本身是非常特定的。我知道如何生成密钥,但是我不知道如何正确地将该密钥发送给NAV进行身份验证。
我正在使用'request-promise'npm软件包,该软件包带有一个'options'参数,可以在其中添加任意的标头key:value对。请有人给我一些有关如何向NAV进行身份验证的指示。我已经花了几个小时了。