Hallo @nebergd,
bin heute erst auf dein Frage gestossen: ob es eine Möglichkeit gibt von meinem Windowsrechner die csv Datei per “was weiß ich” und unter Hinzugabe von Zauber in die Datenbank zu importieren
Dieses “was weiß ich”+Zauber heisst für uns Schnittstelle zu ms-COM (excel,outlook,…) via groovy.
Du schreibst Deine scripte nicht in vb sondern in groovy. In diesem Skript kannst Du auf excel (COM-ActiveXObjects) und auf metasfresh-(java)-Objekte zugreifen und so den Import bewerkstelligen.
Hier ein kleines Beispiel (macht das Gegenteil dessen was Du brauchst - es erstellt xls aus mf-Objekten):
private static final FILE_PRE = "EndCustomerData-"
private static final FILE_EXT = ".xlsx"
def makeExcel = { datamap=this.mapBP , workdir="C:\\Projekte\\mf\\demo\\" , initialXls="demo-EndCustomerData.xlsx" ->
def excel = new ActiveXObject(ACTIVEX_EXCEL)
def workbook = excel.Workbooks.Open( workdir+initialXls , 0 , true)
datamap.each{ k, v ->
try {
workbook.Names(k).RefersToRange.Value = v // copy value v to xls-workbook
} catch(Exception e) {
println "${CLASSNAME}:makeExcel catch (Name doesn't refer to a range) in set value for '${k}'"
}
}
def fileName = "${FILE_PRE}${datamap.get(MAP_DOCNO)}${FILE_EXT}"
def savedXls = workdir+fileName
def file = new File( savedXls )
def msg = " erstellt."
if( file.exists() ) {
...
}
workbook.SaveCopyAs(savedXls)
workbook.Saved = true
excel.Workbooks.Close()
workbook = excel.Workbooks.Open( savedXls , 0 )
excel.Visible = true // show xls to user
return fileName+msg
}
Leider will metas die Impementierung nicht in mf integrieren. Daher werden wir es auf alternativem Weg in unsere clients einbauen.