【问题标题】:Amazon C# request.FeedContent.Position = 0 error "Cannot Access a Closed File"Amazon C# request.FeedContent.Position = 0 错误“无法访问已关闭的文件”
【发布时间】:2017-11-15 15:29:10
【问题描述】:

我正在尝试使用 C# dll 和平面文件(不是 xml)让 SubmitFeed 工作。该语言是用于称为 Dynamics NAV 的 Microsoft ERP 系统的 C/AL。这是我的代码:

config := config.MarketplaceWebServiceConfig();

config.ServiceURL := 'https://mws.amazonservices.com';

service := service.MarketplaceWebServiceClient(MyAccessKey,MySecretKey,'NAV','1.0',config);

request := request.SubmitFeedRequest();

request.Merchant := 'mymerchant';

request.Marketplace := 'MyMarketPlaceID';

request.FeedContent := SystemIOFile.Open('C:\Test\Jason.txt',FileMode.Open,FileAccess.Read);

request.ContentMD5 := service.CalculateContentMD5(request.FeedContent);

request.FeedContent.Position := 0;

request.FeedType := '_POST_INVENTORY_AVAILABILITY_DATA_';

response := service.SubmitFeed(request);

request.FeedContentPosition := 0 行是错误显示“无法访问已关闭文件”的位置

我的submitcount 和submissionresult 完全正常,我只是无法让submitfeed 正常工作。

我已经关注了其他 C# 示例,它们似乎是一样的,有人有想法吗?

【问题讨论】:

    标签: c# amazon dynamics-nav


    【解决方案1】:

    想通了。此行是关闭文件的内容:

    request.ContentMD5 := service.CalculateContentMD5(request.FeedContent);
    

    我相信这是 C/AL (NAV) 中的一个错误,因为我可以在 c# 中编写类似的代码并且它 完全有效。

    我的解决方法是创建请求的第二个实例,然后从第一个请求中获取 MD5 值。这样的工作:

    request := request.SubmitFeedRequest();    
    request.Merchant := "Merchant No.";    
    request.FeedContent := SystemIOFIle.Open('C:\Test\Jason.txt',FileMode.Open,FileAccess.Read);    
    MD5Value := WSClient.CalculateContentMD5(request.FeedContent);
    CLEAR(SystemIOFIle);    
    CLEAR(request);        
    request2 := request2.SubmitFeedRequest();    
    request2.Merchant := "Merchant No.";    
    request2.FeedContent := SystemIOFIle.Open('C:\Test\Jason.txt',FileMode.Open,FileAccess.Read);
    
    request2.ContentMD5 := MD5Value;    
    request2.FeedContent.Position := 0;    
    request2.FeedType := '_POST_FLAT_FILE_PRICEANDQUANTITYONLY_UPDATE_DATA_';    
    response := service.SubmitFeed(request2);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-14
      相关资源
      最近更新 更多