0

問題を再現する手順は何ですか?

  1. 以下の関数を Google サイトに読み込みます。
  2. 関数 moveblogs() を実行します。

期待される出力は何ですか?

2013 年のすべてのブログ投稿 (お知らせ) のタイトルが Logger に記録され、新しいブログ (お知らせページ) に移動されることを期待しています。

代わりに何が見えますか?

エラーが表示されます:

サービス エラー: SitesApp: 内部エラー (行 25、ファイル「コード」) 破棄

可能であれば、問題を再現する小さなサンプル スクリプトのコードを提供してください。

 function moveblogs() {

  var fromblog =  SitesApp.getPageByUrl("https://sites.google.com/a/mydomain.com/intranethome/home/Around-Intranet");
  var toblog =  SitesApp.getPageByUrl("https://sites.google.com/a/mydomain.com/intranethome/home/2013-around-Intranet");

    var nextbloc = 0;

    while (true) {
      var pages2 = fromblog.getAllDescendants({"start":nextbloc,"max":100});

      if (pages2.length > 0){

        Logger.log("starting at.."+nextbloc+" there are .."+pages2.length+" pages starting with.."+pages2[0].getTitle());
        var i = nextbloc;
        for (var x in pages2) {

          var publishedyear = Utilities.formatDate(pages2[x].getDatePublished(),"GMT","yyyy")
          Logger.log("year: "+publishedyear);

          if (publishedyear==2013) {

            Logger.log("Title: "+pages2[x].getTitle());

            pages2[x].setParent(toblog);
            Utilities.sleep(1000);
          }
          i = i + 1;          
        }    
      } else {
        break;      
      }
      nextbloc = nextbloc + 100;

    }      

}

以下の追加情報を提供してください。

  1. 25 行目をコメント アウトすると、2012 年のブログ投稿を正常にログに記録できます。
  2. 以下のコードは、単一のブログ投稿を別の関数で移動できます。

    blogpost.setParent(toblog);

4

1 に答える 1

0

発表のタイトルの 1 つに実際に問題があったと思います。このスクリプトは機能しますが、タイムアウトになる可能性があります。ただし、再実行すると、中断したところから続行されます。

 function moveblogs() {

  var fromblog =  SitesApp.getPageByUrl("https://sites.google.com/a/mydomain.com/intranethome/home/Around-Intranet");
  var toblog =  SitesApp.getPageByUrl("https://sites.google.com/a/mydomain.com/intranethome/home/2013-around-Intranet");

  var nextbloc = 0;

  while (true) {

    var pages2 = fromblog.getChildren({"start":nextbloc,
                                       "max":10,
                                       includeDrafts: false,
                                       includeDeleted: false,
                                      });

    if (pages2.length > 0){

      Logger.log("starting at.."+nextbloc+" there are .."+pages2.length+" pages starting with.."+newblogtitle);
      var i = nextbloc;
      for (var x in pages2) {

        var newblogtitle = pages2[x].getTitle();
        //var pageType = pages2[x].getPageType();

        var publishedyear = Utilities.formatDate(pages2[x].getDatePublished(),"GMT","yyyy")

          if (publishedyear==2013) {

          Logger.log("Title: "+ newblogtitle);

          try{

            pages2[x].setParent(toblog);
            //    Utilities.sleep(1000);
          }catch(err){
            Logger.log(err);
          }
        }
        i = i + 1;          
      }    
    } else {
      break;      
    }
    nextbloc = nextbloc + 10;

  }      

}

}
于 2013-10-21T20:06:46.773 に答える