- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-14-2022 06:33 AM
Hi,
MRVS consists of 4 variables.
Requirement is to stop the duplicates entering in MRVS based on 4 variables present in variable set. When I applied script for 2 variables it is working correctly. I had written onSubmit Client Script on a Variable Set.
But when I applied the same code and same functionality for 4 variables it is not working. How to apply the duplicates functionality for all variables present in MRVS.
Please provide inputs as Priority.
Code:
function onSubmit() {
var value = g_form.getValue("vt_b2b_application_location"); // MRVS name
var arr = JSON.parse(value);
var totalLength = (arr.length);
alert(totalLength);
var arr2 = [];
for (var i = 0; i < arr.length; i++) {
if (!searchExisting(arr[i].select_app_name, arr2)) { // field 1 application name
arr2.push(arr[i]);
}
}
var finalAppLength = arr2.length;
alert(finalAppLength);
var arr3 = [];
for (var j = 0; j < arr.length; j++) {
if (!searchExisting1(arr[j].select_location, arr3)) { // field 2 location
arr3.push(arr[j]);
}
}
var finalLocLength = arr3.length;
alert(finalLocLength);
var finalObjLength = finalAppLength + finalLocLength;
if (finalObjLength <= totalLength) {
alert('There are duplicates please remove those before submitting');
return false;
}
}
function searchExisting(select_app_name, newArray) {
for (var i = 0; i < newArray.length; i++) {
if (newArray[i].select_app_name == select_app_name) {
return true;
}
}
return false;
}
function searchExisting1(select_location, newArray) {
for (var j = 0; j < newArray.length; j++) {
if (newArray[j].select_location == select_location) {
return true;
}
}
return false;
}
Please provide required code for the above requirement.
Thanks,
Reshma
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-14-2022 09:08 AM
Hi,
Since I don't know your variables, I have input some test values, but change accordingly and it should work.
function onSubmit() {
var multiRow = JSON.parse(parent.g_form.getValue("your_variable_set_here")); //This is the multirow that has already been submitted
var obj = {
'test1': g_form.getValue('test1'), //replace test1 with your variable1
'test2': g_form.getValue('test2'), //replace test1 with your variable2
'test3': g_form.getValue('test3'), //replace test1 with your variable3
'test4': g_form.getValue('test4'), //replace test1 with your variable4
};
if(multiRow) { //No need to run this if we don't have any values yet.
var result = multiRow.filter(function(item) {
//Replace below (test1 etc) with your appropriate variable names!
return (item.test1 == obj.test1 && item.test2 == obj.test2 && item.test3 == obj.test3 && item.test4 == obj.test4);
});
if(result.length > 0) {
g_form.addErrorMessage('You have entered the same twice');
return false;
}
}
}
Please mark as correct if it is working. 🙂
Best regards,
Sebastian Laursen
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-15-2022 12:45 AM
Thanks @Sebastian L
The above script is working as expected.
MRVS consists of start day, start time, stop day, stop time variables. All variables type is select box
Start day choices: monday,tuesday,wednesday,thursday,friday,saturday,sunday
start time choices: ( 00:00,01:00,02:00,03:00,......... 21:00,22:00,23:00) hours time formate
Stop day choices: monday,tuesday,wednesday,thursday,friday,saturday,sunday
stop time choices: ( 00:00,01:00,02:00,03:00,......... 21:00,22:00,23:00) hours time formate
If I enter 1st row as (start_day: monday, start _time:04:00,stop_day: wednesday, stop_time: 10:00)
if I enter 2nd row as (start_day: monday, start _time:06:00,stop_day: wednesday, stop_time: 10:00)
If the times are in between the days which are given in above row ( It needs to show error message )
How to achieve the above use case and as well as for remaining days.
Regards,
Reshma.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-14-2022 06:52 AM
hello @shaik11 try this
function onSubmit() {
var mv = parent.g_form.getValue("your_mvrs_internal_name");
var parsed = JSON.parse(mv);
if (dups(g_form.getValue("your_column_name_to_Check_duplicate"),parsed)) {
alert('There are duplicates');
return false;
}
}
function dups(key,arr) {
for (var i = 0; i < arr.length; i++) {
if (arr[i].your_column_name_to_Check_duplicate == key) {
return true;
}
}
return false;
}
Hope this helps
Mark the answer correct if this helps you
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-14-2022 07:17 AM
Hi @Mohith Devatte ,
I tried the above code, it is not working when I applied it to 4 Variables present in MRVS.
Here facing issue is when I add the first row with the 4 variable values and when I try to add 2nd row with 3 same variable values and 1 different variable value comparing with 1st row it is showing as duplicate.
Final goal is only when the 4 column variable values are same then only it need to show duplicates rather than that row should be added to MRVS.
How to achieve it
Thanks,
Reshma
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-14-2022 07:21 AM
@shaik11 so you mean to say if all columns are entered with same value then only it is considered as duplicate ?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-14-2022 07:31 AM
@Mohith Devatte Yes.