docu
This commit is contained in:
parent
e0f68071f6
commit
4e886dacfb
7 changed files with 139 additions and 57 deletions
27
README.md
27
README.md
|
|
@ -30,9 +30,18 @@ Die Zugangsdaten lauten:
|
|||
|
||||
### Cargosoft Schnittstelle
|
||||
|
||||
Für cargosoft verwenden wir einen Subaccoutn der auf das Verzeichns:
|
||||
|
||||
|
||||
/office-alexander-logistics/cargosoft
|
||||
|
||||
zeigt.
|
||||
|
||||
Benutzername: u248962-sub2
|
||||
Passwort: aXa61n9Un3jDNQlL
|
||||
|
||||
Schnittstellen Details siehe unten
|
||||
|
||||
## E-Mail Schnittstelle
|
||||
|
||||
Es gibt ein Email Konto das wir für den Import von Rechnungen nutzen
|
||||
|
|
@ -49,8 +58,24 @@ Es gibt ein Email Konto das wir f
|
|||
|
||||
$ mvn clean install -Pdocker
|
||||
|
||||
## Push to Ixchel Cloud
|
||||
### Push to Ixchel Cloud
|
||||
|
||||
$ mvn clean install -Pkubernetes
|
||||
|
||||
|
||||
# Cargosoft
|
||||
|
||||
Die Cargosoft Schnittstelle besteht aus einem eigenen Export modell "cargosoft-export-1.0.0". In diesem wird der CargoosftExportAdapter getriggert, der
|
||||
die Daten einer Rechnung an den FTP Server übermittelt.
|
||||
|
||||
Die Konfiguration der FTP Schnittstelle erfolgt über den Konfigurationsdialog im Office-Workflow mit den folgenden Werten:
|
||||
|
||||
cargosoft.export.ftp.host=u248962.your-storagebox.de
|
||||
cargosoft.export.ftp.path=/
|
||||
cargosoft.export.ftp.user=u248962-sub2
|
||||
cargosoft.export.ftp.password=aXa61n9Un3jDNQlL
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -71,7 +71,7 @@ public class FTPConnector {
|
|||
|
||||
@Inject
|
||||
@ConfigProperty(name = ENV_EXPORT_FTP_PORT, defaultValue = "21")
|
||||
int ftpPort;
|
||||
Optional<Integer> ftpPort;
|
||||
|
||||
@Inject
|
||||
@ConfigProperty(name = ENV_EXPORT_FTP_USER)
|
||||
|
|
@ -93,7 +93,7 @@ public class FTPConnector {
|
|||
throw new PluginException(CargosoftExportAdapter.class.getSimpleName(), FTP_ERROR,
|
||||
"FTP file transfer failed: no ftp host name provided (" + ENV_EXPORT_FTP_HOST + ")!");
|
||||
}
|
||||
|
||||
|
||||
String fileName = fileData.getName();
|
||||
|
||||
// Compute file path
|
||||
|
|
@ -110,16 +110,14 @@ public class FTPConnector {
|
|||
try {
|
||||
logger.finest("......put " + fileName + " to FTP server: " + ftpServer + "...");
|
||||
ftpClient = new FTPSClient("TLS", false);
|
||||
ftpClient.setControlEncoding("UTF-8");
|
||||
ftpClient.connect(ftpServer.get(), ftpPort);
|
||||
ftpClient.setBufferSize(8192);
|
||||
ftpClient.connect(ftpServer.get(), ftpPort.get().intValue());
|
||||
if (ftpClient.login(ftpUser.get(), ftpPassword.get()) == false) {
|
||||
throw new PluginException(CargosoftExportAdapter.class.getSimpleName(), FTP_ERROR,
|
||||
"FTP file transfer failed: login failed!");
|
||||
}
|
||||
|
||||
ftpClient.enterLocalPassiveMode();
|
||||
// ftpClient.setFileType(FTP.ASCII_FILE_TYPE);
|
||||
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
|
||||
ftpClient.setFileType(FTP.ASCII_FILE_TYPE);
|
||||
ftpClient.setControlEncoding("UTF-8");
|
||||
|
||||
// verify directories
|
||||
|
|
@ -221,4 +219,5 @@ public class FTPConnector {
|
|||
"FTP file transfer failed: " + e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,9 @@
|
|||
# Custom resource bundle
|
||||
|
||||
app.application_title=Alexander Global Logistics
|
||||
app.application_title=Alexander Global Logistics
|
||||
|
||||
alexander_form_basic=
|
||||
alexander_form_basic_read=
|
||||
alexander_sub_positionen=
|
||||
alexander_sub_positionen_read=
|
||||
alexander_sub_responsible=
|
||||
|
|
@ -1,3 +1,9 @@
|
|||
# Custom resource bundle
|
||||
|
||||
app.application_title=Alexander Global Logistics
|
||||
app.application_title=Alexander Global Logistics
|
||||
|
||||
alexander_form_basic=
|
||||
alexander_form_basic_read=
|
||||
alexander_sub_positionen=
|
||||
alexander_sub_positionen_read=
|
||||
alexander_sub_responsible=
|
||||
|
|
@ -12,14 +12,12 @@
|
|||
<table class="imixsdatatable imixs-orderitems">
|
||||
|
||||
<tr>
|
||||
<th style="width: 50px;">Pos.</th>
|
||||
<th>Leistungsbezeichnung</th>
|
||||
<th style="width: 70px;">Einheit</th>
|
||||
<th style="width: 70px;">Menge</th>
|
||||
<th style="width: 140px;">Netto-Preis / ME in €</th>
|
||||
<th style="width: 90px;">Gesamt in €</th>
|
||||
|
||||
|
||||
<th style="">#</th>
|
||||
<th style="">Positionsnummer<span class="imixs-required"> *</span></th>
|
||||
<th style="width: 50px;">Buchungsperiode</th>
|
||||
<th style="width: 150px;">Steuer</th>
|
||||
<th style="width: 150px;text-align:right;">Netto</th>
|
||||
<th style="width: 150px;text-align:right;">Brutto</th>
|
||||
</tr>
|
||||
|
||||
<ui:repeat var="orderitem" value="#{childItemController.childItems}">
|
||||
|
|
@ -33,23 +31,17 @@
|
|||
<td><h:outputText value="#{orderitem.item['name']}" /></td>
|
||||
|
||||
|
||||
<td><h:outputText value="#{orderitem.item['unit']}" /></td>
|
||||
|
||||
<td><h:outputText value="#{orderitem.item['ammount']}"
|
||||
id="orderitem_ammount" onchange="calculateSummary()" /></td>
|
||||
<td style="text-align: right;"><h:outputText value="#{orderitem.item['price']}"
|
||||
id="orderitem_price"
|
||||
onchange="calculateSummary()">
|
||||
<f:convertNumber minFractionDigits="2" locale="de" />
|
||||
</h:outputText></td>
|
||||
|
||||
<td class="orderitem_summary" style="text-align: right;">
|
||||
<td><h:outputText value="#{orderitem.item['period']}" /></td>
|
||||
|
||||
<h:outputText value="#{orderitem.item['_capacity_dsp']}">
|
||||
<td><h:outputText value="#{orderitem.item['tax']}" /></td>
|
||||
|
||||
<td style="text-align: right;"><h:outputText value="#{orderitem.item['amount']}"
|
||||
/></td>
|
||||
|
||||
</h:outputText>
|
||||
|
||||
</td>
|
||||
<td style="text-align: right;"><h:outputText value="#{orderitem.item['total']}"
|
||||
/></td>
|
||||
|
||||
|
||||
|
||||
|
||||
</tr>
|
||||
|
|
@ -63,9 +55,9 @@
|
|||
<td />
|
||||
<td />
|
||||
<td />
|
||||
<td />
|
||||
<td style="text-align: right;">Summe:</td>
|
||||
<td class="orderlist_summary" style="text-align: right;">
|
||||
<h:outputText value="#{workitem.item['_capacity_dsp']}">
|
||||
<h:outputText value="#{workitem.item['order.total']}">
|
||||
</h:outputText>
|
||||
</td>
|
||||
|
||||
|
|
@ -82,28 +74,9 @@
|
|||
<script type="text/javascript">
|
||||
/*<![CDATA[*/
|
||||
|
||||
// display summary
|
||||
$(document).ready(function() {
|
||||
});
|
||||
|
||||
// This method refreshs the layout
|
||||
function updateOrderItems(data) {
|
||||
if (data.status === 'success') {
|
||||
$('[id$=oderlist]').imixsLayout();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
function convertToCurrency(sum) {
|
||||
sum = ("" + sum).replace('.', ',');
|
||||
if (sum.indexOf(',') == -1)
|
||||
sum = sum + ",00";
|
||||
if (sum.indexOf(',') == sum.length - 2)
|
||||
sum = sum + "0";
|
||||
return sum;
|
||||
}
|
||||
|
||||
/*]]>*/
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,65 @@
|
|||
package com.alexanderlogistics;
|
||||
|
||||
|
||||
import java.util.Optional;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.imixs.workflow.FileData;
|
||||
import org.imixs.workflow.exceptions.PluginException;
|
||||
import org.junit.Before;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
|
||||
import junit.framework.Assert;
|
||||
|
||||
/**
|
||||
* This test generates random test data
|
||||
*
|
||||
* @author rsoika
|
||||
*
|
||||
*/
|
||||
public class TestFTP {
|
||||
|
||||
|
||||
final static String FILE = "/DTVF_SKBeschrift_21010.csv";
|
||||
|
||||
private final static Logger logger = Logger.getLogger(TestFTP.class.getName());
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Test Kreditoren import
|
||||
*/
|
||||
@Ignore
|
||||
@Test
|
||||
public void testPutFileToFTP() {
|
||||
|
||||
FTPConnector ftpc=new FTPConnector();
|
||||
|
||||
ftpc.ftpServer=Optional.ofNullable("u248962.your-storagebox.de");
|
||||
ftpc.ftpPort=Optional.ofNullable(21);
|
||||
ftpc.ftpUser=Optional.ofNullable("u248962-sub2");
|
||||
ftpc.ftpPassword=Optional.ofNullable("aXa61n9Un3jDNQlL");
|
||||
ftpc.ftpPath=Optional.ofNullable("/");
|
||||
|
||||
|
||||
|
||||
|
||||
FileData fileData=new FileData("test.txt","some data...".getBytes(),"text",null);
|
||||
try {
|
||||
ftpc.put(fileData);
|
||||
logger.info("test finished...");
|
||||
} catch ( PluginException e) {
|
||||
|
||||
e.printStackTrace();
|
||||
Assert.fail();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -387,7 +387,15 @@ Betrag: <itemvalue>_amount</itemvalue> (Brutto € <itemvalue>_amount_brutto</it
|
|||
</imixs:item>
|
||||
<imixs:item name="txtactivityresult" type="xs:string">
|
||||
<imixs:value><![CDATA[<item name="action">home</item>
|
||||
<item name="space.lastname"><itemvalue>space.name</itemvalue></item>]]></imixs:value>
|
||||
<item name="space.lastname"><itemvalue>space.name</itemvalue></item>
|
||||
|
||||
<item name="subprocess_create">
|
||||
<modelversion>cargosoft-export-1.0</modelversion>
|
||||
<task>1000</task>
|
||||
<event>100</event>
|
||||
<items>(?!txtworkflowhistory)(^[a-zA-Z]|^_)</items>
|
||||
</item>
|
||||
]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="txtname" type="xs:string">
|
||||
<imixs:value><![CDATA[Freigabe einholen]]></imixs:value>
|
||||
|
|
@ -417,7 +425,7 @@ var b= workitem.get("order.total")[0];
|
|||
<bpmn2:documentation id="Documentation_23"><![CDATA[Rechnung geprüft, weiterleiten an Buchhaltung.]]></bpmn2:documentation>
|
||||
<bpmn2:incoming>SequenceFlow_8</bpmn2:incoming>
|
||||
<bpmn2:outgoing>SequenceFlow_51</bpmn2:outgoing>
|
||||
<bpmn2:signalEventDefinition id="SignalEventDefinition_4"/>
|
||||
<bpmn2:outputSet id="OutputSet_2" name="Output Set 2"/>
|
||||
</bpmn2:intermediateCatchEvent>
|
||||
<bpmn2:intermediateCatchEvent id="IntermediateCatchEvent_5005-10" imixs:activityid="10" name="Speichern">
|
||||
<bpmn2:extensionElements>
|
||||
|
|
|
|||
Loading…
Reference in a new issue