Problem mit Benutzertabellen
Raphael Strotz
Hallo Zusammen!Ich stehe nun seit mehreren Stunden vor einem grösseren Problem!
In einem externen Modul wird eine Benutzertabelle (UserTable) mit dem Namen "DAU_REBATESTRUCTURE" benötigt!
Folgende Tabellendefinition habe ich:
using SwissAddonFramework.DI;
using SwissAddonFramework.DI.UserTables;
namespace DAU_Modul_Speriwa
{
[Tablename("DAU_REBATESTRUCTURE"), Description("Rabattstruktur")]
public class DAU_REBATESTRUCTURE : DTOUserTable
{
private int m_RebatePos;
private string m_RebateDescr;
private string m_RebateDescrFrgnLng;
private double m_RebatePercent;
private double m_RebateChf;
private string m_RebateBase;
private string m_RebateRndng;
[ToPersist, FieldType(FieldTypes.Numeric), Size(10)]
public int RebatePos
{
get { return m_RebatePos; }
set { m_RebatePos = value; }
}
[ToPersist, FieldType(FieldTypes.Alpha), Size(32)]
public string RebateDescr
{
get { return m_RebateDescr; }
set { m_RebateDescr = value; }
}
[ToPersist, FieldType(FieldTypes.Alpha), Size(32)]
public string RebateDescrFrgnLng
{
get { return m_RebateDescrFrgnLng; }
set { m_RebateDescrFrgnLng = value; }
}
[ToPersist, FieldType(FieldTypes.Float), Size(20)]
public double RebatePercent
{
get { return m_RebatePercent; }
set { m_RebatePercent = value; }
}
[ToPersist, FieldType(FieldTypes.Float), Size(20)]
public double RebateCHF
{
get { return m_RebateChf; }
set { m_RebateChf = value; }
}
[ToPersist, FieldType(FieldTypes.Alpha), Size(32)]
public string RebateBase
{
get { return m_RebateBase; }
set { m_RebateBase = value; }
}
[ToPersist, FieldType(FieldTypes.Alpha), Size(32)]
public string RebateRndng
{
get { return m_RebateRndng; }
set { m_RebateRndng = value; }
}
}
}
Nur scheint dieser Code eingige Probleme zu haben! Erstellt wird die Tabelle ohne Fehler und ohne Probleme. Ich kann die Tabelle im SAP einsehen. Wenn ich im Modul über die SAP-Objekte etwas abspeichern will geht das auch!
Wenn ich jedoch im Modul etwas aus der Tabelle lesen will bekomme ich "Unbekannter Fehler"- Nachrichten.
System.Data.SqlClient.SqlDataReader reader = B1Connector.GetB1Connector().ExecuteQuery("SELECT * FROM [@DAU_REBATESTRUCTURE]");
Damit bekomme ich die Daten. Sobald ich aber
reader[2].ToString();
oder
reader["U_RebatePos"].ToString();
gebrauche bekomme ich die "Unbekannter Fehler"-Nachrichten.
-----------------------------
So, dann habe ich die Tabelle im SAP manuell erstellt. Jetzt funktioniert alles (schreiben&lesen) ..
----
Ist mein C# Code für die Tabelle falsch oder ist da ein Bug vorhanden?
- Windows Server 2008 R2
- MS SQL 2008
- SAP 8.8 !
- Aktuellen COM Dlls und SWA Dlls
Danke für jegliche Hilfe !
Michael Egloff
Hallo Raphael,ich habe deinen Eintrag in den Ordner für Framework-Fragen verschoben, da er relativ wenig mit customize zu tun hat.
Folgende Vorschläge:
- versuch mal, in der mittels code erstellten Tabelle von Hand einen Eintrag zu machen (direkt im SAP drin, über benutzerdefinierte Fenster)
- vergleiche die beiden Tabellen (von Hand erstellt / mit Code generiert) auf Unterschiede (evtl. andere Subtypen)
- wenn du noch ein zweites Testsystem hast (z.B. SAP 2007), kommt der Fehler da auch?
- der 'B1Connector', hast du den zwischengespeichert?
Ich sehe im Code keinen 'Fehler', habe ihn auch auf meinem Testsystem laufen gelassen und hat alles prima funktioniert (ist aber SAP 2007).
0
Please sign in to leave a comment.
Comments
0 comments