<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Custom OData Action throws Error in Windchill Customization</title>
    <link>https://www.ptcusercommunity.com/t5/Windchill-Customization/Custom-OData-Action-throws-Error/m-p/686152#M4075</link>
    <description>&lt;P&gt;I forgot a return in my JavaScript part.&lt;/P&gt;</description>
    <pubDate>Mon, 07 Sep 2020 08:43:21 GMT</pubDate>
    <dc:creator>dullnigAlex</dc:creator>
    <dc:date>2020-09-07T08:43:21Z</dc:date>
    <item>
      <title>Custom OData Action throws Error</title>
      <link>https://www.ptcusercommunity.com/t5/Windchill-Customization/Custom-OData-Action-throws-Error/m-p/682439#M4074</link>
      <description>&lt;P&gt;I have this unbound action configured:&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;{&lt;BR /&gt;  &lt;SPAN&gt;"name"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"DeleteWorkspacesIfEmpty"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;  &lt;SPAN&gt;"importName"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"DeleteWorkspacesIfEmpty"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;  &lt;SPAN&gt;"description"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"Delete all Workspaces if empty"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;  &lt;SPAN&gt;"parameters"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;[&lt;BR /&gt;    {&lt;BR /&gt;      &lt;SPAN&gt;"name"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"workspaces"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;      &lt;SPAN&gt;"type"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"String"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;      &lt;SPAN&gt;"isNullable"&lt;/SPAN&gt;&lt;SPAN&gt;: false,&lt;BR /&gt;&lt;/SPAN&gt;      &lt;SPAN&gt;"isCollection"&lt;/SPAN&gt;&lt;SPAN&gt;: true&lt;BR /&gt;&lt;/SPAN&gt;    }&lt;BR /&gt;  ]&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;  &lt;SPAN&gt;"returnType"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;{&lt;BR /&gt;    &lt;SPAN&gt;"type"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"String"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;"isNullable"&lt;/SPAN&gt;&lt;SPAN&gt;: false,&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;"isCollection"&lt;/SPAN&gt;&lt;SPAN&gt;: false&lt;BR /&gt;&lt;/SPAN&gt;  }&lt;BR /&gt;}&lt;/PRE&gt;
&lt;P&gt;With this JS:&lt;/P&gt;
&lt;PRE&gt;&lt;SPAN&gt;function &lt;/SPAN&gt;&lt;SPAN&gt;action_DeleteWorkspacesIfEmpty&lt;/SPAN&gt;(data&lt;SPAN&gt;, &lt;/SPAN&gt;params) {&lt;BR /&gt;    &lt;SPAN&gt;var &lt;/SPAN&gt;WorkspaceFunction = Java.&lt;SPAN&gt;type&lt;/SPAN&gt;(&lt;SPAN&gt;'at.techsoft.twice.WorkspaceFunction'&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    var &lt;/SPAN&gt;workspaceFunction = &lt;SPAN&gt;new &lt;/SPAN&gt;WorkspaceFunction()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;    workspaceFunction.deleteWorkspacesIfEmpty(data&lt;SPAN&gt;, &lt;/SPAN&gt;params)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;}&lt;/PRE&gt;
&lt;P&gt;And this Java Code:&lt;/P&gt;
&lt;PRE&gt;&lt;SPAN&gt;public &lt;/SPAN&gt;ActionResult &lt;SPAN&gt;deleteWorkspacesIfEmpty&lt;/SPAN&gt;(ActionProcessorData data&lt;SPAN&gt;, &lt;/SPAN&gt;Map&amp;lt;String&lt;SPAN&gt;, &lt;/SPAN&gt;Parameter&amp;gt; params) &lt;SPAN&gt;throws &lt;/SPAN&gt;ODataApplicationException&lt;SPAN&gt;, &lt;/SPAN&gt;JSONException {&lt;BR /&gt;    Object obj = params.get(&lt;SPAN&gt;"workspaces"&lt;/SPAN&gt;).getValue()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;    List&amp;lt;String&amp;gt; deletedWorkspaces = &lt;SPAN&gt;new &lt;/SPAN&gt;ArrayList&amp;lt;&amp;gt;()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;    EntityCollection entityCollection = &lt;SPAN&gt;new &lt;/SPAN&gt;EntityCollection()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    if &lt;/SPAN&gt;(obj &lt;SPAN&gt;instanceof &lt;/SPAN&gt;ArrayList) {&lt;BR /&gt;        List&amp;lt;String&amp;gt; workspaces = (List&amp;lt;String&amp;gt;) obj&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        for&lt;/SPAN&gt;(String workspace : workspaces) {&lt;BR /&gt;            EPMWorkspace epmWorkspace = QueryHelper.&lt;SPAN&gt;findWorkspace&lt;/SPAN&gt;(workspace)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;            if &lt;/SPAN&gt;(epmWorkspace != &lt;SPAN&gt;null&lt;/SPAN&gt;) {&lt;BR /&gt;                &lt;SPAN&gt;try &lt;/SPAN&gt;{&lt;BR /&gt;                    &lt;SPAN&gt;if &lt;/SPAN&gt;(EPMWorkspaceHelper.&lt;SPAN&gt;manager&lt;/SPAN&gt;.getObjectsInWorkspace(epmWorkspace&lt;SPAN&gt;, &lt;/SPAN&gt;Persistable.&lt;SPAN&gt;class&lt;/SPAN&gt;).size() == &lt;SPAN&gt;0&lt;/SPAN&gt;) {&lt;BR /&gt;                        PersistenceHelper.&lt;SPAN&gt;manager&lt;/SPAN&gt;.delete(epmWorkspace)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                        deletedWorkspaces.add(workspace)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                    }&lt;BR /&gt;                } &lt;SPAN&gt;catch &lt;/SPAN&gt;(WTException e) {&lt;BR /&gt;                    &lt;SPAN&gt;throw new &lt;/SPAN&gt;BadRequestException(e)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                }&lt;BR /&gt;            }&lt;BR /&gt;        }&lt;BR /&gt;    }&lt;BR /&gt;    ActionResult actionResult = &lt;SPAN&gt;new &lt;/SPAN&gt;ActionResult()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;    JSONObject jsonObject = &lt;SPAN&gt;new &lt;/SPAN&gt;JSONObject()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;    jsonObject.put(&lt;SPAN&gt;"deleted"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;deletedWorkspaces)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;    EntityAttribute retEntity = &lt;SPAN&gt;new &lt;/SPAN&gt;EntityAttribute(&lt;SPAN&gt;"Edm.String"&lt;/SPAN&gt;&lt;SPAN&gt;, null, &lt;/SPAN&gt;PropertyValueType.&lt;SPAN&gt;PRIMITIVE&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;jsonObject.toString())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;    actionResult.setReturnedObject(retEntity)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    return &lt;/SPAN&gt;actionResult&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;}&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The Problem is when I request this Action, the response is:&lt;/P&gt;
&lt;P&gt;{&lt;BR /&gt;"error": {&lt;BR /&gt;"code": "NOT_SUPPORTED",&lt;BR /&gt;"message": "The feature being exercised is not supported"&lt;BR /&gt;}&lt;BR /&gt;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;And in the log file the Error is:&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;2020-08-14 09:56:24,281 ERROR [ajp-nio-127.0.0.1-8010-exec-5] com.ptc.odata.core.entity.processor.ActionProviderProcessor wtadmin - Action implementation must return a ActionResult: org.apache.olingo.commons.core.edm.EdmActionImpl@25896e4&lt;BR /&gt;2020-08-14 09:56:24,297 ERROR [ajp-nio-127.0.0.1-8010-exec-5] wt.servlet.ServletRequestMonitor.request wtadmin - 2020-08-14 09:55:41.496 +0200, 4eihaj13;kdtx4n9o;12640;ht9eo6;1803, wtadmin, 10.2.150.48, /Windchill/servlet/odata/v1/TWICE/DeleteWorkspacesIfEmpty, -, POST, 501, 0.015625, 42.7960182&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Does anyone know what I am doing wrong?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 15 Mar 2024 14:21:37 GMT</pubDate>
      <guid>https://www.ptcusercommunity.com/t5/Windchill-Customization/Custom-OData-Action-throws-Error/m-p/682439#M4074</guid>
      <dc:creator>dullnigAlex</dc:creator>
      <dc:date>2024-03-15T14:21:37Z</dc:date>
    </item>
    <item>
      <title>Re: Custom OData Action throws Error</title>
      <link>https://www.ptcusercommunity.com/t5/Windchill-Customization/Custom-OData-Action-throws-Error/m-p/686152#M4075</link>
      <description>&lt;P&gt;I forgot a return in my JavaScript part.&lt;/P&gt;</description>
      <pubDate>Mon, 07 Sep 2020 08:43:21 GMT</pubDate>
      <guid>https://www.ptcusercommunity.com/t5/Windchill-Customization/Custom-OData-Action-throws-Error/m-p/686152#M4075</guid>
      <dc:creator>dullnigAlex</dc:creator>
      <dc:date>2020-09-07T08:43:21Z</dc:date>
    </item>
    <item>
      <title>Re: Custom OData Action throws Error</title>
      <link>https://www.ptcusercommunity.com/t5/Windchill-Customization/Custom-OData-Action-throws-Error/m-p/687146#M4076</link>
      <description>&lt;P&gt;Wow Good to know:) . can you please post your working code here please.&lt;/P&gt;</description>
      <pubDate>Sat, 12 Sep 2020 08:07:56 GMT</pubDate>
      <guid>https://www.ptcusercommunity.com/t5/Windchill-Customization/Custom-OData-Action-throws-Error/m-p/687146#M4076</guid>
      <dc:creator>sidsinha16</dc:creator>
      <dc:date>2020-09-12T08:07:56Z</dc:date>
    </item>
    <item>
      <title>Re: Custom OData Action throws Error</title>
      <link>https://www.ptcusercommunity.com/t5/Windchill-Customization/Custom-OData-Action-throws-Error/m-p/687298#M4077</link>
      <description>&lt;P&gt;Also, Pl tell that "How did you use&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;SPAN&gt;"name"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"DeleteWorkspacesIfEmpty"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;  &lt;SPAN&gt;"importName"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"DeleteWorkspacesIfEmpty"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;this Import Name.&lt;/P&gt;
&lt;P&gt;I am using the same code as yours and getting error :&lt;/P&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;"message"&lt;/SPAN&gt;&lt;SPAN&gt;:&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;"Cannot&amp;nbsp;find&amp;nbsp;EntitySet,&amp;nbsp;Singleton,&amp;nbsp;ActionImport&amp;nbsp;or&amp;nbsp;FunctionImport&amp;nbsp;with&amp;nbsp;name&amp;nbsp;'GetParts'."&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;Pl help.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 14 Sep 2020 11:07:13 GMT</pubDate>
      <guid>https://www.ptcusercommunity.com/t5/Windchill-Customization/Custom-OData-Action-throws-Error/m-p/687298#M4077</guid>
      <dc:creator>sidsinha16</dc:creator>
      <dc:date>2020-09-14T11:07:13Z</dc:date>
    </item>
    <item>
      <title>Re: Custom OData Action throws Error</title>
      <link>https://www.ptcusercommunity.com/t5/Windchill-Customization/Custom-OData-Action-throws-Error/m-p/720999#M4078</link>
      <description>&lt;P&gt;I got a similar error, it was due to making a GET request instead of POST.&lt;/P&gt;</description>
      <pubDate>Thu, 25 Mar 2021 15:58:43 GMT</pubDate>
      <guid>https://www.ptcusercommunity.com/t5/Windchill-Customization/Custom-OData-Action-throws-Error/m-p/720999#M4078</guid>
      <dc:creator>bjoyce</dc:creator>
      <dc:date>2021-03-25T15:58:43Z</dc:date>
    </item>
  </channel>
</rss>

