2011-06-06 17 views
1

.NETビジネスコネクタを使用してDynamics AX 2009データベースにレコードを直接挿入するようにC#プログラムを取得しようとしています。ビジネスコネクタを使用してDynamics AXデータベースにdateTimeフィールドを挿入

これまでのところ私はイースリー、文字列、int型、int64型、列挙型(ノイエス)を挿入することができますが、それは私がしようとするたびに失敗し、エラーで(AXにフィールドをUtcDateTimeのように定義された)日時フィールドを挿入します。

The supplied method arguments are not valid.

私はちょうど私が逃している単純なものだと確信しています。

コードのスニペット:

using (axRecord = ax.CreateAxaptaRecord("TempTable")) 
     { 
      // Fails on this line with error: The supplied method arguments are not valid. 
      axRecord.set_Field("DateField", DateTime.Now); 

      axRecord.Insert(); 

     } 

私は、文字列として通過し、dateTime.parseExactなどを使用してみましたが、まだ動作するようには思えません。

答えて

1

これは動作するはずです。

私は、静的なヘルパークラスを作り、私のプロジェクトでそれを含める:

public static class MyHelperExtensions 
{  
     public static DateTime ParseDateAsString(this string value) 
     { 
      var culture = new CultureInfo("nb-NO"); 
      var formats = new[] {"ddMMyyyy", "dd.MM.yyyy"}; 
      DateTime date; 
      return DateTime.TryParseExact(value, formats, culture, DateTimeStyles.None, out date) ? date : DateTime.MinValue; 
     } 
} 

それから私はこのような値を渡すことができます。

record.set_Field("StartDate", subscription.StartDate.ParseDateAsString()); 

は今、このソリューションは、システム全体にノルウェーの文化を前提としています。 値 "record"は、タイプAxaptaRecordです。

StartDateは(最終的に)TransDateを拡張するフィールドです。

これはなぜあなたのためには動作しません表示されません。 ここにあります他のいくつかのヒント:あなたの中にスペルミスのために、イベントビューア

  • ルックでのエラーのため

    • ルック 変数が文字列に含まれている(私の例のように 「開始日」)。

    • Visual Studioとx ++コードの両方にブレークポイントを追加します。 :)
  • +0

    最初はうまくいきませんでしたが、これをありがとう。私は最終的にテーブルを作り直し、解決策を得ました。私は最初にテーブルを間違って作成したと仮定します。私は複数の日時フォーマットに直面していた別の問題を解決するように思われるので、両方の答えは働いたが、答えとしてマークした。 – Zordey

    +0

    うれしい私は助けることができます。 :) そのテーブルの以前のバージョンのその列のデータ型に問題がある可能性もありますが、それはブリッジの下の水です。 – Skaue

    1

    このコードを試すことができますか?

    using (axRecord = ax.CreateAxaptaRecord("TempTable")) 
    { 
        var xppDateTime = ax.CallStaticClassMethod("Global", "CLRSystemDateTime2UtcDateTime", DateTime.Now); 
    
        axRecord.set_Field("DateField", xppDateTime); 
    
        axRecord.Insert(); 
    
    } 
    
    +0

    このソリューションは機能しますが、最後にもう一方のソリューションを使用することを選択したため、アップしました。 – Zordey

    関連する問題