Examples: query, "exact match", wildcard*, wild?ard, wild*rd
Fuzzy search: cake~ (finds cakes, bake)
Term boost: "red velvet"^4, chocolate^2
Field grouping: tags:(+work -"fun-stuff")
Escaping: Escape characters +-&|!(){}[]^"~*?:\ with \, e.g. \+
Range search: properties.timestamp:[1587729413488 TO *] (inclusive), properties.title:{A TO Z}(excluding A and Z)
Combinations: chocolate AND vanilla, chocolate OR vanilla, (chocolate OR vanilla) NOT "vanilla pudding"
Field search: properties.title:"The Title" AND text
Beantwortet
Systemaktivitäten Eingabeparameter Gliederung

Guten Morgen zusammen,

wir setzen uns gerade verstärkt mit dem Thema Systemaktivitäten auseinander um entwickelte REST-Endpunkte anzubinden.

Hierzu folgende Frage:
Gibt es eine Möglichkeit die Eingabeparameter zu gliedern ohne mit Listen zu arbeiten?

Wenn ich einen List-Parameter nutze, kann ich ja z.B. nur einen Datentyp nutzen und muss jede Zeile in der Akvität konfigurieren.

Folgendes Beispielszenario:
Ich möchte per Systemaktivität aus JobRouter heraus einen Beleg im ERP System erzeugen. Hierzu muss ich neben Kopf und Positionsdaten auch Adressdaten erzeugen (z.B. Liefer- und Rechnungsadressen).

Gerne hätte ich dies jedoch nicht im Block "Einzelfelder" sondern in einem separaten Block, wobei jedoch die Adressfelder mit den entsprechenden Typen bereits vorkonfiguriert sind und nicht jedes einzelne per Dropdown oder manuelle Eingabe erzeugt werden muss.

file

Viele Grüße
Jan

1
1
Gepostet vor 3 Jahren
pic
Gelöschter Benutzer
Stimmen Neuste

Antworten 2


Hey Stefan,

danke erstmal für deine Hilfe. Das mit den Listen war soweit so klar, jedoch ist die Intention direkt die Listenelemente zu erzeugen, idealerweise schreibgeschützt. Einer meiner Studenten hat zumindest eine Möglichkeit gefunden, dass beim Aufruf die Einträge direkt erzeugt werden mit Hilfe folgender Logik in der getUDL Funktion

public function getUDL($udl, $elementID)
	{
		
		if($elementID == 'text')
		{
			$counter = $this->getSystemActivityVar('textCounter');
			if($counter == null)
			{
				$counter = 0;
			}
			$this->error($counter);
			$counter++;
			$this->setSystemActivityVar('textCounter', $counter);

			if(($counter % 3) == 1)
			{
				return [
					['name' => 'TextArt', 'value' => 'textType']
					
				];
			}
			elseif(($counter % 3)  == 2)
			{
				return [
					['name' => 'Sprache', 'value' => 'language']
				];
			}
			elseif(($counter % 3)  == 0)
			{
				return [
					['name' => 'Text', 'value' => 'plainText']
				];
			}
		}
}

In der Aktivität werden dann auch direkt 3 Einträge mit unterschiedlichen Werten erzeugt:
file

Aktuell sind die Einträge jedoch noch nicht in der Reihenfolge wie in der Funktion angegeben und beim Hinzufügen weiterer Einträge wird nur noch ein Wert in der Liste angezeigt.

Falls wir hierzu noch neue Erkenntnisse haben, melde ich mich nochmal gerne.

  
  
Gepostet vor 3 Jahren
pic
Gelöschter Benutzer

Hey Jan,

ich bin mir nicht sicher ob dir das hilft aber hier ist, wie wir es in unseren Systemaktivitäten lösen:
Am Beispiel aus unserer SalesForce-Aktivität:

<outputParameters>
							<list id='accountOutput' name='CONST_ACCOUNT_FIELD_LIST' desc='CONST_ACCOUNT_FIELD_LIST_DESC' fix_subtable='no' udl='accountFieldList' worktable='no' subtable='yes' fixed='no' datatype='varchar' required='yes' default='1' />
</outputParameters>

Man beachte den Parameter "udl='accountFieldList', dazu brauchen wir dann eine zusätzliche Funktion wie folgt:

public function getUDL($elementId, $udl)	{
		if ($elementId === 'accountFieldList') {
			return [
				['name' => CONST_ACCOUNT_LIST_ID, 'value' => 'Id'],
				['name' => CONST_ACCOUNT_LIST_NAME, 'value' => 'Name'],
				['name' => CONST_ACCOUNT_LIST_IS_DELETED, 'value' => 'isDeleted'],
				['name' => CONST_ACCOUNT_LIST_TYPE, 'value' => 'Type'],
				['name' => CONST_ACCOUNT_LIST_BILLING_STREET, 'value' => 'BillingStreet'],
				['name' => CONST_ACCOUNT_LIST_BILLING_CITY, 'value' => 'BillingCity'],
				['name' => CONST_ACCOUNT_LIST_BILLING_STATE, 'value' => 'BillingState'],
				['name' => CONST_ACCOUNT_LIST_BILLING_POSTAL_CODE, 'value' => 'BillingPostalCode'],
				['name' => CONST_ACCOUNT_LIST_BILLING_COUNTRY, 'value' => 'BillingCountry'],
				['name' => CONST_ACCOUNT_LIST_SHIPPING_STREET, 'value' => 'ShippingStreet'],
				['name' => CONST_ACCOUNT_LIST_SHIPPING_CITY, 'value' => 'ShippingCity'],
				['name' => CONST_ACCOUNT_LIST_SHIPPING_STATE, 'value' => 'ShippingState'],
				['name' => CONST_ACCOUNT_LIST_SHIPPING_POSTAL_CODE, 'value' => 'ShippingPostalCode'],
				['name' => CONST_ACCOUNT_LIST_SHIPPING_COUNTRY, 'value' => 'ShippingCountry'],
				['name' => CONST_ACCOUNT_LIST_PHONE, 'value' => 'Phone'],
				['name' => CONST_ACCOUNT_LIST_FAX, 'value' => 'Fax'],
				['name' => CONST_ACCOUNT_LIST_ACCOUNT_NUMBER, 'value' => 'AccountNumber'],
				['name' => CONST_ACCOUNT_LIST_WEBSITE, 'value' => 'Website'],
				['name' => CONST_ACCOUNT_LIST_ACCOUNT_SOURCE, 'value' => 'AccountSource'],
			];
		}
	}

Das führt zu einem Ergebnis, bei dem man diese Felder als Auswahl bekommt in folgender Form:

file

Näher komme ich an deine Schilderung nicht heran. Hilft dir das?

Edit:
Achso, das ist jetzt ein OutputParameter, aber der InputParameter sieht ähnlich aus

<inputParameters>
                            <list id='accountInput' name='CONST_ACCOUNT_FIELD_LIST' desc='CONST_ACCOUNT_FIELD_LIST_DESC' fix_subtable='no' udl='accountInputFieldList' worktable='yes' subtable='yes' fixed='yes' datatype='varchar' required='yes' default='1' />
</inputParameters>

mit

public function getUDL($elementId, $udl)	{
		if ($elementId === 'accountInputFieldList') {
			return [
				['name' => CONST_ACCOUNT_LIST_NAME, 'value' => 'Name'],
				['name' => CONST_ACCOUNT_LIST_TYPE, 'value' => 'Type'],
				['name' => CONST_ACCOUNT_LIST_BILLING_STREET, 'value' => 'BillingStreet'],
				['name' => CONST_ACCOUNT_LIST_BILLING_CITY, 'value' => 'BillingCity'],
				['name' => CONST_ACCOUNT_LIST_BILLING_STATE, 'value' => 'BillingState'],
				['name' => CONST_ACCOUNT_LIST_BILLING_POSTAL_CODE, 'value' => 'BillingPostalCode'],
				['name' => CONST_ACCOUNT_LIST_BILLING_COUNTRY, 'value' => 'BillingCountry'],
				['name' => CONST_ACCOUNT_LIST_SHIPPING_STREET, 'value' => 'ShippingStreet'],
				['name' => CONST_ACCOUNT_LIST_SHIPPING_CITY, 'value' => 'ShippingCity'],
				['name' => CONST_ACCOUNT_LIST_SHIPPING_STATE, 'value' => 'ShippingState'],
				['name' => CONST_ACCOUNT_LIST_SHIPPING_POSTAL_CODE, 'value' => 'ShippingPostalCode'],
				['name' => CONST_ACCOUNT_LIST_SHIPPING_COUNTRY, 'value' => 'ShippingCountry'],
				['name' => CONST_ACCOUNT_LIST_PHONE, 'value' => 'Phone'],
				['name' => CONST_ACCOUNT_LIST_FAX, 'value' => 'Fax'],
				['name' => CONST_ACCOUNT_LIST_ACCOUNT_NUMBER, 'value' => 'AccountNumber'],
				['name' => CONST_ACCOUNT_LIST_WEBSITE, 'value' => 'Website'],
				['name' => CONST_ACCOUNT_LIST_ACCOUNT_SOURCE, 'value' => 'AccountSource'],
			];
		}
}

file

Grüße
Stefan

  
  
Gepostet vor 3 Jahren
Bearbeitet vor 3 Jahren
Stefan Köngeter
309 × 7 Administrator
5K Ansichten
2 Antworten
vor 3 Jahren
vor 3 Jahren
Stichwörter