Print document via API
Manuel Marhold
Hi,is there a possibility to print a document via code without having SAP started?
I don't want to have SAP opend and just emulated pressing the buttons.
Best regards,
Manuel Marhold
SoftChip EDV-Systeme GmbH
Philipp Knecht
Hi ManuelDies ist mit dem Remoteprinting - Feature möglich.
Aber damit dies geht muss irgendwo ein B1 Client laufen.
Schau unter http://help.coresystems.ch da findest du ein Sample in der Doku.
coresuite designer ist fix an B1 gebunden und kann deshlab nicht losgelöst betrieben werden.
hth
Manuel Marhold
Hi Philipp,ich habe das jetzt mal getestet:
user angelegt, Prof. user, coresuite Lizenz, Lizenz in coresuite für designer.
unter batchprint den user ausgewählt, Modus "Druck", Parameter Scan-Pfad angegeben.
Dann habe ich folgende xml-Datei:
Wenn ich diese per copy-and-paste in den ordner einfüge bekomme ich die Fehlermeldung "Error in Param - File : D:coresuite1.xml Msg: Der Prozess kann nicht auf die Datei D:coresuite1.xml zugreifen, da sie von einem anderen Prozess verwendet wird.". Gedruckt wird nat. nichts.
Wenn ich die Datei per vbs-Script erstelle, bekomme ich folgende Fehlermeldung:
"Print Error : Print Error in Layout : Parameter [%ObjectId] in [Expression] /* Down Payment Data */ [....] not found" (siehe Anhang)
vbscript:
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
Set MyFile = fso.CreateTextFile("D:coresuite1.xml", True)
MyFile.WriteLine("")
MyFile.WriteLine("")
MyFile.WriteLine("")
MyFile.WriteLine("")
MyFile.WriteLine("")
MyFile.WriteLine("")
MyFile.WriteLine("")
MyFile.WriteLine("")
MyFile.WriteLine("")
MyFile.WriteLine("")
MyFile.WriteLine("")
MyFile.WriteLine("")
MyFile.Close()
SET MyFile=Nothing
SET fso = Nothing
Ich bekomme in der coresuiteDebugLog folgende Einträge:
coresuite Designer : Start PrintHandler
coresuite Designer : End PrintHandler
coresuite Designer : Start getPrintDef
coresuite Designer : Start FillPrintDef SELECT T0.Code,T0.Name,T2.U_CardCode AS U_CardCode,T1.U_FormType,T0.U_PrnKey,T0.U_PrnWord,T0.U_PrnExcel, T0.U_PrnN, T0.U_PrnE, T0.U_PrnF,T0.U_PrnSave,T0.U_AttType,
T0.U_FromAdr, T0.U_ToAdr, T0.U_AddCC,T0.U_AddBCC,T0.U_Subject,T0.U_EmailTxt, T0.U_LangCode,T0.U_MatrixId, T0.U_Quality, T0.U_ExpPath, T0.U_Res,T0.U_OpenExp, CASE WHEN T0.U_PMExpr IS NULL THEN '0' ELSE U_PMExpr END AS PMExpr, U_GridQry, U_GridFTName, U_MailMode, U_HtmlBody, U_InclFont FROM [@SWA_LD_PRNDEF] T0
INNER JOIN [@SWA_LD_FORMTYPE] T1 ON T0.U_FormType = T1.Code LEFT OUTER JOIN [@SWA_LD_PRNDEFCARD] T2 ON T0.Code = T2.Code WHERE T0.Code = 'T0000006'
coresuite Designer : End FillPrintDef
coresuite Designer : Finished GetPrintDef
coresuite Designer : Finished GetPrintDef
coresuite Designer : Printdef:
List of potential Printdefs:
Printdef : SWA_LD_Sales Order N:Y E:Y F:Y W:N X:N PrintAfterSave:Y Key:0 Att:P CardCode:
Selected : SWA_LD_Sales Order N:Y E:Y F:Y W:N X:N PrintAfterSave:Y Key:0 Att:P CardCode:
coresuite Designer : Printorder Layoutname : SoftChip Formular LayoutID : U0000023 Copy : 1
coresuite Designer : P contains 28 Parameters
Parameter [%ObjectId] in Expression
/* Down Payment Data */
IF ([%ObjectId]=13 OR [%ObjectId]=17)
/* AR INVOICE AND SALES ORDER */
BEGIN
SELECT T1.DocNum,T0.DocEntry,ISNULL(SUM(T0.DrawnSumFc),0) AS DrawnSumFc, ISNULL(SUM(T0.DrawnSum),0) AS DrawnSum FROM RDR9 T0 LEFT OUTER JOIN ODPI T1 ON T0.BaseAbs = T1.DocEntry WHERE T0.DocEntry = [%DocEntry] AND T1.CANCELED = 'N' GROUP BY T1.DocNum, T0.DocEntry
END
ELSE
/* AP INVOICE AND PURCHASE ORDER */
IF ([%ObjectId]=18 OR [%ObjectId]=22)
BEGIN
SELECT T1.DocNum,T0.DocEntry,ISNULL(SUM(T0.DrawnSumFc),0) AS DrawnSumFc, ISNULL(SUM(T0.DrawnSum),0) AS DrawnSum FROM RDR9 T0 LEFT OUTER JOIN ODPO T1 ON T0.BaseAbs = T1.DocEntry WHERE T0.DocEntry = [%DocEntry] AND T1.CANCELED = 'N' GROUP BY T1.DocNum, T0.DocEntry
END
ELSE
/* For all other Types Empty Row */
SELECT T1.DocNum,T0.DocEntry,ISNULL(SUM(T0.DrawnSumFc),0) AS DrawnSumFc, ISNULL(SUM(T0.DrawnSum),0) AS DrawnSum FROM RDR9 T0 LEFT OUTER JOIN ODPI T1 ON T0.BaseAbs = T1.DocEntry WHERE T0.DocEntry = 0 AND T1.CANCELED = 'N' GROUP BY T1.DocNum, T0.DocEntry
not found.
Was mache ich falsch?
Gruß
Manuel
Philipp Knecht
Hi ManuelDas ist noch ein Bug in Versionen <= 1.72.
Ist in der aktuellsten Entwicklungsversion behoben.
Die Beta wird ev. noch diese Woche freigegeben.
Du kannst davon ausgehen dass dein File dann funktioniert.
hth
Manuel Marhold
Hi Philipp,scheint so weit zu funktionieren... Hast du ca. eine Ahnung, wann die beta als alpha rauskommt?
Gruß
Manuel
Philipp Knecht
Hi ManuelSind noch in der Testingphase.
Bis morgen kann ich dir aber einen Termin nennen.
An deiner Stelle würde ich auf die aktuelle (offizielle) Beta wechseln welche hoffentlich als Release freigegeben wird.
hth
Manuel Marhold
Hi Philipp,wie schaut es aus? Wir müssen PL39 wegen behobenen Fehlern mit der PaymentEngine und Adressen nutzen. Wann wird die beta freigegeben?
Gruß
Manuel
Philipp Knecht
Hi ManuelDürfte heute abend noch raus :)
Gruss
0
Please sign in to leave a comment.
Comments
0 comments