Mam formę z dwoma polami

e-mail
telephone

Oraz zasada biznesowa, która potwierdza, że przynajmniej jeden z nich jest ustawiony. W CRM jest aplikacja Silverlight, która musi wiedzieć, czy formularz może zostać zapisany lub nie. Należy to zrobić bez zapisania go, przywołując się, a wywołanie wyjątków zapisywania () i łapania nie jest opcją. Mogę wywołać JavaScript z aplikacji Silverlight, więc rozwiązanie JS również było w porządku.

Jak aplikacja SL może wiedzieć, czy formularz może zostać zapisany?

Miłego kodowania

Arne.

0
Arne 13 sierpień 2014, 18:44

2 odpowiedzi

Najlepsza odpowiedź

Mówisz, że Twoja reguła biznesowa "sprawdza", że jedna lub druga jest wypełniona. Jakie działania zajmuje, jeśli tak jest? Mogę pomyśleć o kilku podejściach do tego, takie jak testowanie, jeśli ktoś ma wartość NULL, wykonaj inne wymagane.

Możesz po prostu przetestować, czy oboje są null, i pokazują komunikat o błędzie wobec jednego lub obu. Wyświetlanie komunikatu o błędzie z reguły zablokuje zapisanie rekordu. Niezależnie od tego, czy będzie to wystarczy zablokować aplikację SL z próby go zapisać, nie jestem pewien.

1
AdamV 13 sierpień 2014, 17:21

Rozwiązałem problem. W przypadku, gdy to pomoże komuś, stworzyłem reguły biznesowe, które tworzą pola obowiązkowe, gdy spełnione są pewne warunki. Następnie stworzyłem funkcję JS, która sprawdza, czy wszystkie pola obowiązkowe są faktycznie wypełnione. Ta funkcja nie działała poprawnie dla mnie. Oto wersja robocza:

function IsAllMandatoryFieldsPopulated() {
    var populated = true;

    Xrm.Page.data.entity.attributes.forEach(function (attribute, index) {
        if (attribute.getRequiredLevel() == 'required') {
            if(attribute.getValue() === null) {
                populated = false;
            }
        }
    });

    if (populated)
        return '';
    return 'Put your validation message here';
}

Nie działa z powodu niektórych kłopotów, które otrzymujesz, gdy nazywasz tę funkcję Formularz SL, ale to nie jest poza zakresem tego pytania. Mam nadzieję, że to pomoże komuś.

0
Arne 15 sierpień 2014, 09:33