Sorun şu ki, THIS_MLM_NAME
aslında bir Arden dizesi değil. Eğer THIS_MLM_NAME IS STRING
test ederseniz, yanlış olacaktır. Bu durumu düzeltmek için THIS_MLM_NAME AS STRING
bir dizeye dönüştürmek:
ThisMLMName := SUBSTRING 200 CHARACTERS
STARTING AT ((FIND "::" IN STRING (THIS_MLM_NAME AS String)) + 2)
FROM (THIS_MLM_NAME AS String);
Arden Sunrise Akut Care 'uygulamasında hiçbir ayıklayıcı olmadığı için, ben (değişkenlerle ilgili bilgileri gösteren modülü MOD_VARIABLE_INFO
veya değişikliği seçmemize yardımcı olmak için aşağıdaki MLM yazdı kodu) gerçek adı eşleştirmek için:
// data slot
(Variable, Padding) := ARGUMENT;
Result := "";
IF NOT EXIST Padding THEN
Padding := "";
ENDIF;
CR := (13 FORMATTED WITH "%c") || Padding;
Delimiter := "";
MOD_VARIABLE_INFO := MLM 'MOD_VARIABLE_INFO';
IF Variable IS LIST THEN
Result := Result || "List(" || (COUNT Variable) || ") [" || CR || " ";
FOR Item IN Variable DO
Result := Result || Delimiter;
TempResult := CALL MOD_VARIABLE_INFO WITH Item, Padding || " ";
Result := Result || TempResult;
Delimiter := "," || CR || " ";
ENDDO;
Result := Result || CR || "]";
ELSEIF Variable IS STRING THEN
Result := Result || "String";
ELSEIF Variable IS NUMBER THEN
Result := Result || "Number";
ELSEIF Variable IS BOOLEAN THEN
Result := Result || "Boolean";
ELSEIF Variable IS NET_OBJECT THEN
Result := Result || ".Net Object";
ELSEIF Variable IS NULL THEN
Result := Result || "Null";
ELSEIF Variable IS OBJECT THEN
Result := Result || "Object {" || CR || " ";
FOR Attr IN (EXTRACT ATTRIBUTE NAMES Variable) DO
Result := Result || Delimiter || Attr || ": ";
Item := ATTRIBUTE Attr FROM Variable;
TempResult := CALL MOD_VARIABLE_INFO WITH Item, Padding || " ";
Result := Result || TempResult;
Delimiter := "," || CR || " ";
ENDDO;
Result := Result || CR || "}";
ELSE
Result := Result || "Unknown (" || Variable || ")";
ENDIF;
// logic slot
CONCLUDE True;
// action slot
RETURN Result;
bu MLM THIS_MLM_NAME
için "Bilinmeyen" döndürür iken
, en azından o yerli Arden veri türlerinin herhangi olmadığı gibi bir .Net veri türü olduğunu göstermektedir.
Sunrise MLM Düzenleyicisi'nde, MLM'yi kontrol eden sözdizimi, ardından "Sözdizimi Kontrolü MLM" sekmesini tıklatarak, "İşlev Tanımı" nı seçerek ve sonra da sağ alt bölme. THIS_MLM_NAME
'u arayın ve (SETQ THIS_MLM_NAME 'USERNAME-302364198::MLM_NAME)
'u bulacaksınız. Buradan, değişkenin (SETQ THIS_MLM_NAME "USERNAME-302364198::MLM_NAME")
gibi görünecek bir dize yerine düz bir alıntı/derecelendirilmemiş lisp ifadesine ayarlandığını görebilirsiniz.