Customizing-Beispiele
E-Mail-Client aufrufen
Ziel
- Customizing von Hyperlink-Datenfeldern zum Aufrufen eines E-Mail-Clients mit Python
- Für Datenfelder mit Dataitems, die den DF-Typ AM besitzen
Vorgehensweise
- Modul Datenbereich aufrufen
- Neuen Datenbereich anlegen
- Datenfeld mit folgenden Eigenschaften einfügen:
- Für dieses Datenfeld folgende Parameter setzen:
- Die Baumdarstellung des Datenfelds öffnen und in Datenfeld-Konfiguration folgendes eintragen:
subject_text = "" body_text = ""
-
- subject_text = Betreff der E-Mail
- body_text = Inhalt der E-Mail
Anpassungsmöglichkeiten der Werte: Betreff und Inhalt:
- Mit dem obigen Customizing werden Betreff und Inhalt nicht befüllt. Es ist eine manuelle Eingabe in der E-Mail nötig.
- Um den Betreff oder Inhalt zu befüllen kann die PythonAPIReference benutzt werden.
- Hierzu im Datenfeld Datenfeld-Konfiguration die Variablen subject_text und body_text über Python setzen.
- Um auf die Werte der Datensätze zuzugreifen kann man sich des Objekts record bedienen, das eine Instanz der MTSRecord Klasse darstellt.
subject_text = record.name.get_raw_value()
Beispiel für einen Python-Wertebereich
Ziel
- DI041088 DF-Python-ID im Modul Datenbereiche
Beispiel
from ppms import ppms_cu
di_prefix = "DI: "
di_prefix_lenghth = len(di_prefix)
def get_df_cust_name(di):
df_name = di.get_dtp_record().df_customizing_name.get_value()
if df_name: return df_name # return name on DF level if set
return None
def get_di_cust_name(di):
di_nr = di.get_dtp_record().di.get_value()
di_cust_name = str()
if not di_nr: return None
di_record = ppms.search_record(412,[di_nr],[41035], True)
if di_record: di_cust_name = di_record.di_customizing_name.get_value()
else: return None
if di_cust_name: return di_cust_name
def computeOutput(di):
name = str()
if get_df_cust_name(di):
return get_df_cust_name(di)
elif get_di_cust_name(di):
return di_prefix + get_di_cust_name(di)
return ""
computeOutput.deps = ("DI041036","DI000213","DI000984")
def checkInput(di, old_value):
return ppms_cu.Helper.validate_python_id(di,di.get_value())
checkInput.deps=("DI001862",)
def processInput(di, old_value):
new_value = di.get_value()
rec = di.get_dtp_record()
#in case of copy
if new_value[:4]==di_prefix:
rec.df_customizing_name.set_string_value("")
return di_prefix + get_di_cust_name(di)
#in case of empty python ID
if not new_value.strip():
rec.df_customizing_name.set_string_value("")
if not get_di_cust_name(di):
return ""
return di_prefix + get_di_cust_name(di)
#in case of new value = old value
if new_value.strip() == old_value:
return ppms_cu.Helper.get_python_id_by_license(new_value)
rec.df_customizing_name.set_string_value(ppms_cu.Helper.get_python_id_by_license(new_value))
return ppms_cu.Helper.get_python_id_by_license(new_value)
processInput.deps = ("DI041036",)
Beispiel für Abbilden der Menüpunkte 154/151 (Alles markieren/Alles demarkieren) mit Python
Ziel
- Die Menüpunkte 154 (Alles markieren) und 151 (Alles demarkieren) mit Python abbilden
Beispiel
# get module object
mod_obj=ppms.get_target_module()
#mark all records of all datareas in the module
ppms.echo_off()
[[mts_rec.mark() for mts_rec in mts_rec_list]for mts_rec_list in [da_obj.get_records() for da_obj in mod_obj.get_das()]]
ppms.echo_on()
#unmark all marked records of all dataareas in the module
ppms.echo_off()
[[mts_rec.unmark() for mts_rec in mts_rec_list]for mts_rec_list in [da_obj.get_marked_records() for da_obj in mod_obj.get_das()]]
ppms.echo_on()