mojaSymfonia FORUM
https://forum.mix-soft.pl/

Pola dodatkowe towaru migracja HMP2014-HMF2014
https://forum.mix-soft.pl/viewtopic.php?f=2&t=5663
Strona 1 z 1

Autor:  Bartosh89 [ 2014-03-21, 23:45 ]
Tytuł:  Pola dodatkowe towaru migracja HMP2014-HMF2014

Witam,
Czy ktoś z forumowiczów spotkał się z problemem migracji pól dodatkowych z HMP do wymiarów analitycznych w HMF ? Szukałem w encyklopedii jak i próbowałem metody ingerencji poprzez zapytania SQL (według mnie najprostsza sprawa) ale w najnowszej wersji handlu chyba nie są możliwe już zmiany w tabelach SSCommon. Przy próbie update tabeli SSCommon.ProductClassification (tutaj teraz są wymiary analityczne od towarów) dostaję błąd "Dostęp do tabeli SSCommon.ProductClassification jest zabroniony !". Czy ktoś ma inny pomysł na zmigrowanie pól dodatkowych towarów między tymi programami ? Z góry dziękuję za odpowiedź

Autor:  rafal [ 2014-03-21, 23:57 ]
Tytuł:  Re: Pola dodatkowe towaru migracja HMP2014-HMF2014

Ustaw triggery tej tabeli na Disable na czas zapisu.

Autor:  Bartosh89 [ 2014-03-24, 16:15 ]
Tytuł:  Re: Pola dodatkowe towaru migracja HMP2014-HMF2014

Dzięki wielkie za podpowiedź.
Zamieszczam mój krótki kodzik do wczytywania na podstawie pliku csv. Może się komuś przyda :)
Kod:

String sZnacznik = ""
String sSekcja = "Import dokumentu z pliku"
int i = 1, n, m, iok
Record Pozycje
   long idtw
   String sKodtw[50]
   string spole1[500]
   string spole2[500]
   string spole3[500]
EndRec
Pozycje p(1)


IORec ior
Limit 10000

String szSciezka
String szSciezkaT
Int plik_imp
int Sub KatalogDocelowy()
   load
   szSciezka = FileDlg(1,"Plik raportu (*.csv*)","*.csv*","Wszystkie pliki (*.*)","*.*" )
   KatalogDocelowy=1
EndSub
//================================================================================
int Sub CzyJestPlik()
   save
   CzyJestPlik = 2
   if !(Find File (szSciezka)) then
      message "Nie znaleziono wybranego pliku Ico:!"
      CzyJestPlik = 1
   endif   
   load   
endsub
//================================================================================
Int sub OnCommand(int id, int msg)
endsub
//================================================================================
int nRezerwoj
Int sub Formatka()   
   if GetIni( sSekcja, "szSciezka" ) != "" then
      szSciezka = GetIni ( sSekcja, "szSciezka" )
   else
      szSciezka = ""
   endif
   int nx=690
   int ny=150
   int x,y,dx,dy
   Form "Wczytywanie pliku",nx, ny
      button "&Anuluj",nx-99,ny-60,80,25,-1
      button "&OK",nx-180,ny-60,80,25,CzyJestPlik()
   x=10 : y=10 : dx=nx-30 : dy=45
   Group "Miejsce docelowe",x,y,dx,dy
      Edit "Katalog", szSciezka, x+80,y+15, dx-140, 17
      button "katalog",dx-45,y+15, 45, 20,KatalogDocelowy()
   int wyjdz = ExecForm OnCommand
   If wyjdz != 2 Then  error ""
   PutIni ( sSekcja, "szSciezka", using "%s", szSciezka )
EndSub

String szLinia
String szpozycja
String szPole
//===============================================================================
// Otwiera plik
//===============================================================================
Int Sub OtworzPlik()
   szSciezkaT=szSciezka
   int plik_impT
   plik_imp = open  szSciezka for Input
   if plik_imp<=0 then
      Close plik_imp
      error ""
   endif   
EndSub

int Sub pobierzpozycje()
   pobierzpozycje = Input #plik_imp,szLinia
   buf = mid(szLinia,1,len(szlinia)-1)+";"
   find regular "{*};{*};{*};{*};"
   p(size(p)).sKodtw = regular 1
   p(size(p)).spole1 = regular 2
   p(size(p)).spole2 = regular 3
   p(size(p)).spole3 = regular 4
   grow p,1
   Endsub

//===============================================================================

Int Sub ZbierzDane()
      do
      iok = pobierzpozycje()
   loop while iok == 1
EndSub   


//=======================================================================================================================

int sub tworzdokument()

dispatch Cn = "ADODB.Connection"
dispatch Rs = "ADODB.Recordset"   
Cn = GetAdoConnection()

for i = 1 to i > size(p)
Popup(1,"Pozycja "+(using "%.f",i)+" z "+(using "%.f",size(p)))
Rs = Cn.Execute("Select ElementId from SSCommon.STElements where Title = '"+p(i).skodtw+"'")
if !Rs.EOF then
p(i).idtw = Rs.fields("ElementId").value
endif   
next i

for i = 1 to i > size(p)
Popup(1,"Pozycja "+(using "%.f",i)+" z "+(using "%.f",size(p)))   
Rs = Cn.Execute("Update SSCommon.ProductClassification set CDim_Pole1 = '"+p(i).spole1+"',CDim_Pole2 = '"+p(i).spole2+"',CDim_Pole3 = '"+p(i).spole3+"' where ElementId = '"+(using "%.f",p(i).idtw)+"'")   
next i

Cn.Close()
endsub

Formatka()
OtworzPlik()
ZbierzDane()
tworzdokument()
NoOutput()

Strona 1 z 1 Strefa czasowa UTC+1godz. [letni]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/