Smartsheet API Resourcenotfooundexception Создание нового листа - PullRequest
0 голосов
/ 11 ноября 2018

Я создаю новый лист в Smartsheet через API в Visual Studio 2015 C #.
Я следовал руководству по коду / API из Smartsheet, но я получаю ошибку во время выполнения, когда код срабатывает.

Ошибка выглядит следующим образом:

Smartsheet.Api.ResourceNotFoundException was unhandled
  HResult=-2146233088
  Message=Not Found
  Source=smartsheet-csharp-sdk
  StackTrace:
       at Smartsheet.Api.Internal.AbstractResources.HandleError(HttpResponse response)
       at Smartsheet.Api.Internal.AbstractResources.CreateResource[T](String path, Type objectClass, T object)
       at Smartsheet.Api.Internal.FolderSheetResourcesImpl.CreateSheet(Int64 folderId, Sheet sheet)
       at Aviva_Order_Systems.avivaorders.button1_Click(Object sender, EventArgs e) in C:\Dropbox\AL DB\Dropbox\Aviva\Order Project\Aviva Order Systems\avivaorders.cs:line 372
       at System.Windows.Forms.Control.OnClick(EventArgs e)
       at System.Windows.Forms.Button.OnClick(EventArgs e)
       at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
       at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       at System.Windows.Forms.Control.WndProc(Message& m)
       at System.Windows.Forms.ButtonBase.WndProc(Message& m)
       at System.Windows.Forms.Button.WndProc(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
       at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
       at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
       at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
       at System.Windows.Forms.Application.Run(Form mainForm)
       at Aviva_Order_Systems.Program.Main() in C:\Dropbox\AL DB\Dropbox\Aviva\Order Project\Aviva Order Systems\Program.cs:line 18
       at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
       at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()
  InnerException: 

"

Этот раздел кода является тем, что выделяется при попытке отладки ошибки.

            Sheet newSheet = ssproj.FolderResources.SheetResources.CreateSheet(
            #####,                   // long folderId
            new Sheet
               {
                Name = "OrderProfile", 
                Columns = new Column[] { CCnum, CCName, Project, Supplier, SEQ }
                } 
            );

Note i have changed the #### on purpose.  It is giving the error here: 
Sheet newSheet = ssproj.FolderResources.SheetResources.CreateSheet(
            #####,                   // long folderId
            new Sheet
               {
                Name = "OrderProfile", 
                Columns = new Column[] { CCnum, CCName, Project, Supplier, SEQ }
                } 
            );

Есть идеи о том, что вызывает это? Я пытался найти

1 Ответ

0 голосов
/ 11 ноября 2018

Похоже, вы пытаетесь создать лист в указанной папке. Исходя из получаемой ошибки, я подозреваю, что указанный вами идентификатор папки недействителен.

Чтобы устранить неполадки, вы можете проверить, действителен ли идентификатор папки , попытавшись выполнить запрос Получить папку с этим идентификатором. Если идентификатор действителен, запрос Get Folder будет выполнен успешно; если он недействителен, запрос не будет выполнен. В следующем примере кода C # предпринимается попытка получить папку с ID = 7116448184199044.

Folder folder = smartsheet.FolderResources.GetFolder(
  7116448184199044,           // long folderId
  null                        // IEnumerable<FolderInclusion> include
);

ОБНОВЛЕНИЕ (в ответ на ваш комментарий)

  • Если вы хотите создать лист в папке, и эта папка оказывается в общей рабочей области, вызов API, который вы используете ( Создать лист в папке ) должно работать. Если вы получаете сообщение об ошибке «ресурс не найден» в ответ на этот запрос API, то либо указанный вами идентификатор папки недействителен, либо учетная запись, которой принадлежит токен доступа API, который вы используете для выдачи запроса API, не ' не иметь доступа к этой папке / рабочей области. Как описано выше, вы можете убедиться, что идентификатор папки действителен (и что учетная запись, которой принадлежит токен доступа API, имеет доступ к папке), подтвердив, что вы можете успешно выполнить Get Folder Запрос API для этой папки.

  • Если вы хотите создать лист в корне общего рабочего пространства (т. Е. Не в папке, а на корневом уровне рабочего пространства), вам нужно будет использовать Создать лист в рабочей области Запрос API для этого (указав идентификатор рабочей области). Учетная запись, которой принадлежит токен доступа API, используемый для выдачи запроса API, должна иметь доступ к рабочему пространству для успешного выполнения этого вызова.

...