Poniżej przeklejka z forum Comarch:
Jest sobie taki kod:
Kod: Zaznacz cały
protected static IApplication Application = null;
protected static ILogin Login = null;
protected IAdoSession Sesja { get; private set; }
public void ROdoMM()
{
Sesja = Login.CreateSession();
var dokumenty = (CDNHlmn.DokumentyHaMag)Sesja.CreateObject("CDN.DokumentyHaMag", null);
var dokument = (CDNHlmn.IDokumentHaMag)dokumenty.AddNew(null);
//Tutaj jeszcze dodatkowe kolekcje
//Ustalamy typ dokumentu na MM
dokument.Rodzaj = 312000;
dokument.TypDokumentu = 312;
//Dla bezpieczeństwa (by dało się coś jeszcze poprawić) wstawiamy dokument do bufora
dokument.Bufor = 1;
//Ustawiamy datę dokumentu - z automatu na dziś
dokument.DataDok = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
//Ustawiamy magazyn źródłowy (standardowo pobiera z MAGAZYN)
dokument.MagazynZrodlowyID = 1;
//Ustawiamy magazyn docelowy (w tym przypadku brany z pola TrN_Opis) - NA RAZIE STATYCZNIE DO TESTU
dokument.MagazynDocelowyID = 5;
//Dodanie pozycji do dokumentu - docelowo z zapytania SQL
CDNBase.ICollection pozycje = dokument.Elementy;
var pozycja = (CDNHlmn.IElementHaMag)pozycje.AddNew(null);
pozycja.TowarKod = "03001";
//pozycja.TowarNazwa = "TOWAR TESTOWY";
pozycja.Ilosc = 1;
//pozycja.JM = "szt";
//Zapisanie sesji == utworzenie transakcji? Do sprawdzenia...
//pozycja.Session.Save();
Sesja.Save();
}
private void button1_Click(object sender, EventArgs e)
{
LogowanieAutomatyczne("ADMIN", null, "FIRMA_TESTOWA");
ROdoMM();
//Sesja.Save();
}Jeśli utworzę pusty dokument MM - błędu nie ma. Dopiero po dodaniu pozycji wywala się błędem podczas zapisu sesji. Czy ktoś mnie może naprowadzić co robię źle? Skończyły mi się pomysły, czekam na odp. z SOZ póki co.The INSERT statement conflicted with the FOREIGN KEY constraint "FK_TrEPodmiot". The conflict occurred in database "CDN_FIRMA_TESTOWA", table "CDN.PodmiotyView".