При использовании API JShare, как получить значения полей для определенного файла? - PullRequest
0 голосов
/ 06 ноября 2018

Я пытаюсь расширить пример GetFile, который поставляется с JShare, для репликации страницы свойств документа, где я могу видеть имена полей и значения, связанные с файлом. Имя и заголовок являются доступными полями по умолчанию, и я добавил несколько дополнительных в «Настройки сайта» -> «Столбцы сайта», хотя я был бы рад получить (и установить) «Имя и заголовок» для начинающих.

При попытке объединить пример GetFile (ниже) с примером GetFieldValues ​​(на самом деле это просто вызов service.getFieldValues ​​()), вызову getFieldValues ​​(), похоже, нужен идентификатор списка и идентификатор элемента [getFieldValues ​​(java.lang). String listId, int itemId)], к которому у меня нет ни одного файла com.independentsoft.share.File. Как мне получить com.independentsoft.share.List, в котором находится файл, чтобы я мог получить значения его полей?

Есть ли лучший способ сделать это? Благодарю.

[Да, я использую свое собственное имя сервера, имя пользователя, пароль.]

import com.independentsoft.share.File;
import com.independentsoft.share.Service;
import com.independentsoft.share.ServiceException;

public class Example {
    public static void main(String[] args)
    {
        try
        {
            Service service = new Service("https://independentsoft.sharepoint.com", "username", "password");

            File file = service.getFile("/Shared Documents/Test.docx");

            System.out.println("Name: " + file.getName());
            System.out.println("Title: " + file.getTitle());
            System.out.println("MajorVersion: " + file.getMajorVersion());
            System.out.println("MinorVersion: " + file.getMinorVersion());
            System.out.println("Length: " + file.getLength());
            System.out.println("LastModifiedTime: " + file.getLastModifiedTime());
            System.out.println("CheckOutType: " + file.getCheckOutType());
            System.out.println("CheckInComment: " + file.getCheckInComment());

        } 
        catch (ServiceException ex)
        {
            System.out.println("Error: " + ex.getMessage());
            System.out.println("Error: " + ex.getErrorCode());
            System.out.println("Error: " + ex.getErrorString());
            System.out.println("Error: " + ex.getRequestUrl());

            ex.printStackTrace();
        }
    }
}

1 Ответ

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

Хорошо, понял это. Как это действительно судорожно ....

import com.independentsoft.share.FieldValue;
import com.independentsoft.share.ListItem;
import com.independentsoft.share.Service;
import com.independentsoft.share.ServiceException;

public class Example
{

    public static void main(String[] args)
    {
        try
        {
            Service service = new Service(...);

            com.independentsoft.share.List pse = service.getListByTitle("Documents");
            java.util.List<ListItem> items = service.getListItems(pse.getId());

            for (ListItem item : items)
            {
                java.util.List<FieldValue> values = service.getFieldValues(pse.getId(), item.getId());

                for (FieldValue value : values)
                {
                    if (value.getName().equals("FileLeafRef") && value.getValue().equals("New File.txt"))
                    {
                        for (FieldValue mine : values)
                        {
                            System.out.println(mine.getName() + ": " + mine.getValue());
                        }
                        break;
                    }
                }
            }
        }
        catch (ServiceException ex)
        {
            System.out.println("Error: " + ex.getMessage());
            System.out.println("Error: " + ex.getErrorCode());
            System.out.println("Error: " + ex.getErrorString());
            System.out.println("Error: " + ex.getRequestUrl());

            ex.printStackTrace();
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...