model.setPropertyValue(tProp,'')\n
with
model.removeProperty(tProp)","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"203","kudosSumWeight":2,"postTime":"2020-03-04T01:19:37.937-08:00","lastPublishTime":"2020-03-04T04:17:39.578-08:00","metrics":{"__typename":"MessageMetrics","views":4600},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"solution":false,"entityType":"FORUM_REPLY","eventPath":"category:ready_api_forums/community:nwkab66374board:readyapi-questions/message:198108/message:198110","replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[{"__typename":"MessageEdge","cursor":"MjUuMnwyLjF8b3wzfDE0OjAsMzk6MXwx","node":{"__ref":"ForumReplyMessage:message:198139"}}]},"customFields":[],"editFrozen":false,"body@stringLength":"256","rawBody":"
By the way, I prefer not even keep the property names. If you want the same? Then just do small change below.
In that case, just replace
model.setPropertyValue(tProp,'')\n
with
model.removeProperty(tProp)","images":{"__typename":"AssociatedImageConnection","edges":[],"totalCount":0,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"attachments":{"__typename":"AttachmentConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"timeToRead":1,"currentRevision":{"__ref":"Revision:revision:198110_2"},"latestVersion":null,"messagePolicies":{"__typename":"MessagePolicies","canModerateSpamMessage":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","key":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","args":[]}}}},"ModerationData:moderation_data:198139":{"__typename":"ModerationData","id":"moderation_data:198139","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"ForumReplyMessage:message:198139":{"__typename":"ForumReplyMessage","uid":198139,"id":"message:198139","revisionNum":1,"author":{"__ref":"User:user:77056"},"readOnly":false,"repliesCount":2,"depth":2,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:readyapi-questions"},"parent":{"__ref":"ForumReplyMessage:message:198110"},"conversation":{"__ref":"Conversation:conversation:198108"},"subject":"Re: Solution Script to Cleanup of Custom property values in the project","moderationData":{"__ref":"ModerationData:moderation_data:198139"},"body":"
Thanks a lot nmrao ! I know ArthurM also gave hints for a similar solution, but nice to see it in a pre-packed handy (working) script.
FYI: For everyone looking for the project save script tab in ReadyAPI 3.1 (double-clicking the project didn't do the trick for me):
Right-click your project and select Project Settings.
Switch to the Save Script tab.
Thanks a lot
FYI: For everyone looking for the project save script tab in ReadyAPI 3.1 (double-clicking the project didn't do the trick for me):
Right-click your project and select Project Settings.
Switch to the Save Script tab.
JoostDG ,
\n
Thank you for correcting the way to locate Save Script.
Hoping that this would eases/minimizes the work for people and would be happy if many members uses it .
Thank you for correcting the way to locate Save Script.
Hoping that this would eases/minimizes the work for people and would be happy if many members uses it .
nmrao great job, very accurate and concise scirpt.
One thing I have done differently is instead of storing properties to be excluded in lists inside the script, I was using a naming convention - if variable name ends with '*', I treat it as dynamic and clean the value, otherwise treat it as static and leave. I think in a big project, where you have dozens of properties on all levels, might be difficult to keep track of all properties, and using naming convention to differ between dynamic and static properties might be easier. Here is my solution.
I am not familiar with 'Save script', looks like a new feature in ReadyAPI. Is it a script that runs as you save the project ?
","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"218","kudosSumWeight":1,"postTime":"2020-03-04T23:04:18.028-08:00","lastPublishTime":"2020-03-04T23:10:57.242-08:00","metrics":{"__typename":"MessageMetrics","views":4484},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"solution":false,"entityType":"FORUM_REPLY","eventPath":"category:ready_api_forums/community:nwkab66374board:readyapi-questions/message:198108/message:198165","replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[{"__typename":"MessageEdge","cursor":"MjUuMnwyLjF8b3wzfDE0OjAsMzk6MXwx","node":{"__ref":"ForumReplyMessage:message:198175"}},{"__typename":"MessageEdge","cursor":"MjUuMnwyLjF8b3wzfDE0OjAsMzk6MXwy","node":{"__ref":"ForumReplyMessage:message:198319"}}]},"customFields":[],"attachments":{"__typename":"AttachmentConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"editFrozen":false,"body@stringLength":"1066","rawBody":"
One thing I have done differently is instead of storing properties to be excluded in lists inside the script, I was using a naming convention - if variable name ends with '*', I treat it as dynamic and clean the value, otherwise treat it as static and leave. I think in a big project, where you have dozens of properties on all levels, might be difficult to keep track of all properties, and using naming convention to differ between dynamic and static properties might be easier. Here is my solution.
I am not familiar with 'Save script', looks like a new feature in ReadyAPI. Is it a script that runs as you save the project ?
","images":{"__typename":"AssociatedImageConnection","edges":[],"totalCount":0,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"timeToRead":1,"currentRevision":{"__ref":"Revision:revision:198165_6"},"latestVersion":null,"messagePolicies":{"__typename":"MessagePolicies","canModerateSpamMessage":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","key":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","args":[]}}}},"ModerationData:moderation_data:198175":{"__typename":"ModerationData","id":"moderation_data:198175","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"ForumReplyMessage:message:198175":{"__typename":"ForumReplyMessage","uid":198175,"id":"message:198175","revisionNum":3,"author":{"__ref":"User:user:21201"},"readOnly":false,"repliesCount":2,"depth":2,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:readyapi-questions"},"parent":{"__ref":"ForumReplyMessage:message:198165"},"conversation":{"__ref":"Conversation:conversation:198108"},"subject":"Re: Solution Script to Cleanup of Custom property values in the project","moderationData":{"__ref":"ModerationData:moderation_data:198175"},"body":"\nThank you.
\n\n
Your idea, using some notation like regex, is nice.
\nHowever, like I mentioned(in the 2nd message), if the properties are dynamic, then there is no point even keeping the names in the project which will reduce some bytes of project file size.
\n\n
Usually even keep the static properties in a separate file, this will allows to have data such as urls, db details of different environments and a small script in load script (project level) will load the properties when a project is opened. This allows to load different static values withouteven opening the project, and pass different propery file at command line.
","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"213","kudosSumWeight":2,"postTime":"2020-03-05T00:07:08.952-08:00","lastPublishTime":"2020-03-05T00:15:04.937-08:00","metrics":{"__typename":"MessageMetrics","views":4462},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"solution":false,"entityType":"FORUM_REPLY","eventPath":"category:ready_api_forums/community:nwkab66374board:readyapi-questions/message:198108/message:198175","replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[{"__typename":"MessageEdge","cursor":"MjUuMnwyLjF8b3wxfDE0OjAsMzk6MXwx","node":{"__ref":"ForumReplyMessage:message:198176"}}]},"attachments":{"__typename":"AttachmentConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"editFrozen":false,"body@stringLength":"884","rawBody":"Thank you.
\n\n
Your idea, using some notation like regex, is nice.
\nHowever, like I mentioned(in the 2nd message), if the properties are dynamic, then there is no point even keeping the names in the project which will reduce some bytes of project file size.
\n\n
Usually even keep the static properties in a separate file, this will allows to have data such as urls, db details of different environments and a small script in load script (project level) will load the properties when a project is opened. This allows to load different static values withouteven opening the project, and pass different propery file at command line.
","images":{"__typename":"AssociatedImageConnection","edges":[],"totalCount":0,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"timeToRead":1,"currentRevision":{"__ref":"Revision:revision:198175_3"},"latestVersion":null,"messagePolicies":{"__typename":"MessagePolicies","canModerateSpamMessage":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","key":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","args":[]}}},"customFields":[]},"ModerationData:moderation_data:198176":{"__typename":"ModerationData","id":"moderation_data:198176","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"ForumReplyMessage:message:198176":{"__typename":"ForumReplyMessage","author":{"__ref":"User:user:21201"},"id":"message:198176","revisionNum":1,"uid":198176,"depth":3,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:readyapi-questions"},"parent":{"__ref":"ForumReplyMessage:message:198175"},"conversation":{"__ref":"Conversation:conversation:198108"},"subject":"Re: Solution Script to Cleanup of Custom property values in the project","moderationData":{"__ref":"ModerationData:moderation_data:198176"},"body":"And by the way, the \"Save Script\" is not something new. That is basic feature even available for years in SoapUI Open Souce as well.
\n\n
So the above script works in SoapUI OS too.
","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"189","kudosSumWeight":1,"repliesCount":1,"postTime":"2020-03-05T00:09:50.249-08:00","lastPublishTime":"2020-03-05T00:09:50.249-08:00","metrics":{"__typename":"MessageMetrics","views":4464},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"solution":false,"entityType":"FORUM_REPLY","eventPath":"category:ready_api_forums/community:nwkab66374board:readyapi-questions/message:198108/message:198176","readOnly":false,"editFrozen":false,"body@stringLength":"204","rawBody":"And by the way, the \"Save Script\" is not something new. That is basic feature even available for years in SoapUI Open Souce as well.
\n\n
So the above script works in SoapUI OS too.
","images":{"__typename":"AssociatedImageConnection","edges":[],"totalCount":0,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"attachments":{"__typename":"AttachmentConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"timeToRead":1,"currentRevision":{"__ref":"Revision:revision:198176_1"},"latestVersion":null,"messagePolicies":{"__typename":"MessagePolicies","canModerateSpamMessage":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","key":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","args":[]}}},"customFields":[]},"User:user:8752":{"__typename":"User","id":"user:8752","uid":8752,"login":"_ivanovich_","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2014-04-10T06:34:53.000-07:00"},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://community.smartbear.com/t5/s/nwkab66374/images/dS04NzUyLTEwNTM2aUMzNjFDNkQwOTdFNzE5MEM"},"rank":{"__ref":"Rank:rank:12"},"entityType":"USER","eventPath":"community:nwkab66374/user:8752"},"ModerationData:moderation_data:198319":{"__typename":"ModerationData","id":"moderation_data:198319","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"ForumReplyMessage:message:198319":{"__typename":"ForumReplyMessage","uid":198319,"id":"message:198319","revisionNum":1,"author":{"__ref":"User:user:8752"},"readOnly":false,"repliesCount":6,"depth":2,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:readyapi-questions"},"parent":{"__ref":"ForumReplyMessage:message:198165"},"conversation":{"__ref":"Conversation:conversation:198108"},"subject":"Re: Solution Script to Cleanup of Custom property values in the project","moderationData":{"__ref":"ModerationData:moderation_data:198319"},"body":"Hi,
i'm interested to see your solution for cleaning dynamic and static properties.
the link seems not to refer to your solution or i made a mistake.
Can you send again the link please.
nmrao's solution looks good too.
i want to try both solutions.
For now i just have a regular groovy script with a list of properties to clean
Thank you
","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"208","kudosSumWeight":0,"postTime":"2020-03-08T13:06:10.246-07:00","lastPublishTime":"2020-03-08T13:06:10.246-07:00","metrics":{"__typename":"MessageMetrics","views":2705},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"solution":false,"entityType":"FORUM_REPLY","eventPath":"category:ready_api_forums/community:nwkab66374board:readyapi-questions/message:198108/message:198319","replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[{"__typename":"MessageEdge","cursor":"MjUuMnwyLjF8b3wxfDE0OjAsMzk6MXwx","node":{"__ref":"AcceptedSolutionMessage:message:198320"}}]},"editFrozen":false,"body@stringLength":"606","rawBody":"Hi,
i'm interested to see your solution for cleaning dynamic and static properties.
the link seems not to refer to your solution or i made a mistake.
Can you send again the link please.
nmrao's solution looks good too.
i want to try both solutions.
For now i just have a regular groovy script with a list of properties to clean
Thank you
","images":{"__typename":"AssociatedImageConnection","edges":[],"totalCount":0,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"attachments":{"__typename":"AttachmentConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"timeToRead":1,"currentRevision":{"__ref":"Revision:revision:198319_1"},"latestVersion":null,"messagePolicies":{"__typename":"MessagePolicies","canModerateSpamMessage":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","key":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","args":[]}}},"customFields":[]},"ModerationData:moderation_data:198320":{"__typename":"ModerationData","id":"moderation_data:198320","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"AcceptedSolutionMessage:message:198320":{"__typename":"AcceptedSolutionMessage","author":{"__ref":"User:user:82887"},"id":"message:198320","revisionNum":1,"uid":198320,"depth":3,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:readyapi-questions"},"parent":{"__ref":"ForumReplyMessage:message:198319"},"conversation":{"__ref":"Conversation:conversation:198108"},"subject":"Re: Solution Script to Cleanup of Custom property values in the project","moderationData":{"__ref":"ModerationData:moderation_data:198320"},"body":"_ivanovich_ here is it: https://medium.com/@macadamianlabs/tactics-to-overcome-version-control-issues-in-readyapi-38f724ca4827
","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"138","kudosSumWeight":2,"repliesCount":5,"postTime":"2020-03-08T13:34:49.808-07:00","lastPublishTime":"2020-03-08T13:34:49.808-07:00","solution":true,"metrics":{"__typename":"MessageMetrics","views":5000},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"entityType":"FORUM_REPLY","eventPath":"category:ready_api_forums/community:nwkab66374board:readyapi-questions/message:198108/message:198320","customFields":[],"attachments":{"__typename":"AttachmentConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"readOnly":false,"editFrozen":false,"body@stringLength":"501","rawBody":"Great work nmrao , this will surely help all of us who are using composite project while merging. :)
Kudos to you !!!!
","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"139","kudosSumWeight":1,"repliesCount":0,"postTime":"2020-03-08T10:03:44.678-07:00","lastPublishTime":"2020-03-08T10:03:44.678-07:00","metrics":{"__typename":"MessageMetrics","views":4380},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"solution":false,"entityType":"FORUM_REPLY","eventPath":"category:ready_api_forums/community:nwkab66374board:readyapi-questions/message:198108/message:198315","replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"customFields":[],"attachments":{"__typename":"AttachmentConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"readOnly":false,"editFrozen":false,"body@stringLength":"339","rawBody":"Great work
Kudos to you !!!!
","images":{"__typename":"AssociatedImageConnection","edges":[],"totalCount":0,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"timeToRead":1,"currentRevision":{"__ref":"Revision:revision:198315_1"},"latestVersion":null,"messagePolicies":{"__typename":"MessagePolicies","canModerateSpamMessage":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","key":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","args":[]}}}},"Rank:rank:15":{"__typename":"Rank","id":"rank:15","position":21,"name":"New Contributor","color":"00537C","icon":null,"rankStyle":"OUTLINE"},"User:user:88547":{"__typename":"User","id":"user:88547","uid":88547,"login":"kumaryogeshyk","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2020-04-14T03:24:22.904-07:00"},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://community.smartbear.com/t5/s/nwkab66374/m_assets/avatars/default/avatar-9.svg?time=0"},"rank":{"__ref":"Rank:rank:15"},"entityType":"USER","eventPath":"community:nwkab66374/user:88547"},"ModerationData:moderation_data:200132":{"__typename":"ModerationData","id":"moderation_data:200132","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"ForumReplyMessage:message:200132":{"__typename":"ForumReplyMessage","uid":200132,"id":"message:200132","revisionNum":1,"author":{"__ref":"User:user:88547"},"readOnly":false,"repliesCount":1,"depth":1,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:readyapi-questions"},"parent":{"__ref":"ForumTopicMessage:message:198108"},"conversation":{"__ref":"Conversation:conversation:198108"},"subject":"Re: Solution Script to Cleanup of Custom property values in the project","moderationData":{"__ref":"ModerationData:moderation_data:200132"},"body":"int proptyCounts = testRunner.testCase.propertyCount
String [] tcexe_ToRemove = new String[proptyCounts]
for(int i=0;i<proptyCounts;i++)
{
propertyName = testRunner.testCase.propertyNames[i]
tcexe_ToRemove [i]=propertyName.toString().trim()
}
for(int j=0;j<tcexe_ToRemove.size();j++)
{
testRunner.getTestCase().removeProperty(tcexe_ToRemove[j] );
}
int proptyCounts = testRunner.testCase.propertyCount
String [] tcexe_ToRemove = new String[proptyCounts]
for(int i=0;i<proptyCounts;i++)
{
propertyName = testRunner.testCase.propertyNames[i]
tcexe_ToRemove [i]=propertyName.toString().trim()
}
for(int j=0;j<tcexe_ToRemove.size();j++)
{
testRunner.getTestCase().removeProperty(tcexe_ToRemove[j] );
}
Thanks a lot
","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"14","kudosSumWeight":0,"repliesCount":0,"postTime":"2020-04-14T14:05:26.991-07:00","lastPublishTime":"2020-04-14T14:05:26.991-07:00","metrics":{"__typename":"MessageMetrics","views":2524},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"solution":false,"entityType":"FORUM_REPLY","eventPath":"category:ready_api_forums/community:nwkab66374board:readyapi-questions/message:198108/message:200185","replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"customFields":[],"attachments":{"__typename":"AttachmentConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"readOnly":false,"editFrozen":false,"body@stringLength":"19","rawBody":"Thanks a lot
","images":{"__typename":"AssociatedImageConnection","edges":[],"totalCount":0,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"timeToRead":1,"currentRevision":{"__ref":"Revision:revision:200185_1"},"latestVersion":null,"messagePolicies":{"__typename":"MessagePolicies","canModerateSpamMessage":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","key":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","args":[]}}}},"QueryVariables:MessageSolutions":{"__typename":"QueryVariables","id":"MessageSolutions","value":{"first":10,"constraints":{"topicId":{"eq":"message:198108"},"solution":{"eq":true}},"sorts":{"postTime":{"direction":"ASC"}},"useAvatar":true,"useAuthorLogin":true,"useAuthorRank":false,"useBody":true,"useKudosCount":false,"useTimeToRead":false,"useMedia":true,"useRepliesCount":false,"useSearchSnippet":false,"useAcceptedSolutionButton":true,"useSolvedBadge":false,"useAttachments":true,"useTags":false,"useUserHoverCard":false,"useNodeHoverCard":false,"usePreviewSubjectModal":false,"useMessageStatus":false}},"CachedAsset:text:en_US-components/messages/EscalatedMessageBanner-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/EscalatedMessageBanner-1741125846000","value":{"escalationMessage":"Escalated to Salesforce by {username} on {date}","viewDetails":"View Details","modalTitle":"Case Details","escalatedBy":"Escalated by: ","escalatedOn":"Escalated on: ","caseNumber":"Case Number: ","status":"Status: ","lastUpdateDate":"Last Update: ","automaticEscalation":"automatic escalation","anonymous":"Anonymous"},"localOverride":false},"CachedAsset:text:en_US-components/users/UserLink-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/users/UserLink-1741125846000","value":{"authorName":"View Profile: {author}","anonymous":"Anonymous"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/users/UserRank-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/users/UserRank-1741125846000","value":{"rankName":"{rankName}","userRank":"Author rank {rankName}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageTime-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageTime-1741125846000","value":{"postTime":"Published: {time}","lastPublishTime":"Last Update: {time}","conversation.lastPostingActivityTime":"Last posting activity time: {time}","conversation.lastPostTime":"Last post time: {time}","moderationData.rejectTime":"Rejected time: {time}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageSolvedBadge-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageSolvedBadge-1741125846000","value":{"solved":"Solved"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageSubject-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageSubject-1741125846000","value":{"noSubject":"(no subject)"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageBody-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageBody-1741125846000","value":{"showMessageBody":"Show More","mentionsErrorTitle":"{mentionsType, select, board {Board} user {User} message {Message} other {}} No Longer Available","mentionsErrorMessage":"The {mentionsType} you are trying to view has been removed from the community.","videoProcessing":"Video is being processed. Please try again in a few minutes.","bannerTitle":"Video provider requires cookies to play the video. Accept to continue or {url} it directly on the provider's site.","buttonTitle":"Accept","urlText":"watch"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageCustomFields-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageCustomFields-1741125846000","value":{"CustomField.default.label":"Value of {name}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageReplyButton-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageReplyButton-1741125846000","value":{"repliesCount":"{count}","title":"Reply","title@board:BLOG@message:root":"Comment","title@board:TKB@message:root":"Comment","title@board:IDEA@message:root":"Comment","title@board:OCCASION@message:root":"Comment"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageSolutionList-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageSolutionList-1741125846000","value":{"emptyDescription":"No has been message solutions yet"},"localOverride":false},"CachedAsset:text:en_US-components/messages/AcceptedSolutionButton-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/AcceptedSolutionButton-1741125846000","value":{"accept":"Mark as Solution","accepted":"Marked as Solution","errorHeader":"Error!","errorAdd":"There was an error marking as solution.","errorRemove":"There was an error unmarking as solution.","solved":"Solved","topicAlreadySolvedErrorTitle":"Solution Already Exists","topicAlreadySolvedErrorDesc":"Refresh the browser to view the existing solution"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/common/Pager/PagerLoadMore-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/common/Pager/PagerLoadMore-1741125846000","value":{"loadMore":"Show More"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageView/MessageViewInline-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageView/MessageViewInline-1741125846000","value":{"bylineAuthor":"{bylineAuthor}","bylineBoard":"{bylineBoard}","anonymous":"Anonymous","place":"Place {bylineBoard}","gotoParent":"Go to parent {name}"},"localOverride":false},"Revision:revision:198110_2":{"__typename":"Revision","id":"revision:198110_2","lastEditTime":"2020-03-04T04:17:39.578-08:00"},"Revision:revision:198176_1":{"__typename":"Revision","id":"revision:198176_1","lastEditTime":"2020-03-05T00:09:50.249-08:00"},"Revision:revision:198319_1":{"__typename":"Revision","id":"revision:198319_1","lastEditTime":"2020-03-08T13:06:10.246-07:00"},"Revision:revision:198165_6":{"__typename":"Revision","id":"revision:198165_6","lastEditTime":"2020-03-04T23:10:57.242-08:00"},"Revision:revision:198175_3":{"__typename":"Revision","id":"revision:198175_3","lastEditTime":"2020-03-05T00:15:04.937-08:00"},"Revision:revision:198139_1":{"__typename":"Revision","id":"revision:198139_1","lastEditTime":"2020-03-04T12:35:56.181-08:00"},"Revision:revision:198150_3":{"__typename":"Revision","id":"revision:198150_3","lastEditTime":"2020-03-04T20:00:49.998-08:00"},"Revision:revision:198320_1":{"__typename":"Revision","id":"revision:198320_1","lastEditTime":"2020-03-08T13:34:49.808-07:00"},"Revision:revision:200132_1":{"__typename":"Revision","id":"revision:200132_1","lastEditTime":"2020-04-14T03:33:33.445-07:00"},"Revision:revision:200185_1":{"__typename":"Revision","id":"revision:200185_1","lastEditTime":"2020-04-14T14:05:26.991-07:00"},"Revision:revision:198315_1":{"__typename":"Revision","id":"revision:198315_1","lastEditTime":"2020-03-08T10:03:44.678-07:00"},"User:user:75488":{"__typename":"User","id":"user:75488","deleted":false,"uid":75488,"login":"sonya_m","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2017-08-01T02:17:03.003-07:00"}},"ForumReplyMessage:message:198488":{"__typename":"ForumReplyMessage","uid":198488,"id":"message:198488","revisionNum":1,"author":{"__ref":"User:user:75488"},"readOnly":false},"ModerationData:moderation_data:198490":{"__typename":"ModerationData","id":"moderation_data:198490","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"AcceptedSolutionMessage:message:198490":{"__typename":"AcceptedSolutionMessage","author":{"__ref":"User:user:8752"},"id":"message:198490","revisionNum":1,"uid":198490,"depth":6,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:readyapi-questions"},"parent":{"__ref":"ForumReplyMessage:message:198488"},"conversation":{"__ref":"Conversation:conversation:198108"},"subject":"Re: Solution Script to Cleanup of Custom property values in the project","moderationData":{"__ref":"ModerationData:moderation_data:198490"},"body":"Hi,
i found nmrao's solution fine.
Arthur's solution is nice too.
For now i prefer to use this simple solution in 'setup script' for example to clear testcase properties:
context.testCase.properties.each {\ncontext.testCase.properties[it.key].value = ''\n}
But Arthur's solution looks nice because we can delete all properties ending with a certain suffix.
I need to work on these two solutions to avoid the repetition of my two lines in each testcase for example.
But when we execute several times the same test, we overwrite properties right?
It's not clearing but changes the same properties each time we execute.
Thank you
","body@stripHtml({\"removeProcessingText\":true,\"removeSpoilerMarkup\":true,\"removeTocMarkup\":true,\"truncateLength\":200})@stringLength":"203","postTime":"2020-03-11T04:47:47.250-07:00","lastPublishTime":"2020-03-11T04:47:47.250-07:00","images":{"__typename":"AssociatedImageConnection","edges":[],"totalCount":0,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"attachments":{"__typename":"AttachmentConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"solution":true,"metrics":{"__typename":"MessageMetrics","views":4890},"placeholder":false,"originalMessageForPlaceholder":null,"videos":{"__typename":"VideoConnection","edges":[],"totalCount":0,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"isEscalated":null,"entityType":"FORUM_REPLY","eventPath":"category:ready_api_forums/community:nwkab66374board:readyapi-questions/message:198108/message:198490","customFields":[],"readOnly":false,"editFrozen":false,"body@stringLength":"728","rawBody":"
Hi,
i found nmrao's solution fine.
Arthur's solution is nice too.
For now i prefer to use this simple solution in 'setup script' for example to clear testcase properties:
context.testCase.properties.each {\ncontext.testCase.properties[it.key].value = ''\n}
But Arthur's solution looks nice because we can delete all properties ending with a certain suffix.
I need to work on these two solutions to avoid the repetition of my two lines in each testcase for example.
But when we execute several times the same test, we overwrite properties right?
It's not clearing but changes the same properties each time we execute.
Thank you
","kudosSumWeight":1,"repliesCount":2,"timeToRead":1,"currentRevision":{"__ref":"Revision:revision:198490_1"},"latestVersion":null,"visibilityScope":"PUBLIC","messagePolicies":{"__typename":"MessagePolicies","canModerateSpamMessage":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","key":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","args":[]}}}},"CachedAsset:text:en_US-shared/client/components/users/UserAvatar-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/users/UserAvatar-1741125846000","value":{"altText":"{login}'s avatar","altTextGeneric":"User's avatar"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/ranks/UserRankLabel-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/ranks/UserRankLabel-1741125846000","value":{"altTitle":"Icon for {rankName} rank"},"localOverride":false},"Revision:revision:198490_1":{"__typename":"Revision","id":"revision:198490_1","lastEditTime":"2020-03-11T04:47:47.250-07:00"},"CachedAsset:text:en_US-components/tags/TagView/TagViewChip-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/tags/TagView/TagViewChip-1741125846000","value":{"tagLabelName":"Tag name {tagName}"},"localOverride":false}}}},"page":"/forums/ForumMessagePage/ForumMessagePage","query":{"boardId":"readyapi-questions","messageSubject":"solution-script-to-cleanup-of-custom-property-values-in-the-project","messageId":"198108"},"buildId":"q_bLpq2mflH0BeZigxpj6","runtimeConfig":{"buildInformationVisible":false,"logLevelApp":"info","logLevelMetrics":"info","openTelemetryClientEnabled":false,"openTelemetryConfigName":"smartbear","openTelemetryServiceVersion":"25.2.0","openTelemetryUniverse":"prod","openTelemetryCollector":"http://localhost:4318","openTelemetryRouteChangeAllowedTime":"5000","apolloDevToolsEnabled":false,"inboxMuteWipFeatureEnabled":false},"isFallback":false,"isExperimentalCompile":false,"dynamicIds":["./components/seo/QAPageSchema/QAPageSchema.tsx","./components/community/Navbar/NavbarWidget.tsx","./components/community/Breadcrumb/BreadcrumbWidget.tsx","./components/messages/TopicWithThreadedReplyListWidget/TopicWithThreadedReplyListWidget.tsx","./components/messages/MessageListForNodeByRecentActivityWidget/MessageListForNodeByRecentActivityWidget.tsx","./components/messages/RelatedContentWidget/RelatedContentWidget.tsx","./components/customComponent/CustomComponent/CustomComponent.tsx","./components/messages/MessageView/MessageViewStandard/MessageViewStandard.tsx","./components/messages/ThreadedReplyList/ThreadedReplyList.tsx","../shared/client/components/common/List/UnstyledList/UnstyledList.tsx","./components/messages/MessageView/MessageView.tsx","../shared/client/components/common/Pager/PagerLoadMore/PagerLoadMore.tsx","./components/messages/MessageView/MessageViewInline/MessageViewInline.tsx","./components/customComponent/CustomComponentContent/TemplateContent.tsx","../shared/client/components/common/List/UnwrappedList/UnwrappedList.tsx","./components/tags/TagView/TagView.tsx","./components/tags/TagView/TagViewChip/TagViewChip.tsx"],"appGip":true,"scriptLoader":[]}