我试图使用PublicationID获取在给定出版物中发布的所有结构组.我期望StructureGroupCriteria通过传递根结构组TCM ID获取结构组,但获取页面ID(我期待SG).
现在我试图遍历列表并获取每个结构组的详细信息.我没有找到任何API(.net)来获取这些细节,而且API也只返回Pages.
我到目前为止所做的工作和返工工作StructureGroupCriteria,返回页面ID列表而不是SG ID 
  PublicationCriteria pubCriteria = new PublicationCriteria(pubID);
  // Root StructureGroup TCM ID -- tcm:45-3-4
  StructureGroupCriteria sgCriteria = new StructureGroupCriteria("tcm:45-3-4", true); 
  Criteria allSGsInPub = CriteriaFactory.And(pubCriteria, sgCriteria);
  Query allSGs = new Query(allSGsInPub);
  string[] sgInfo = allSGs.ExecuteQuery();
  Response.Write("Total : " + sgInfo.Length);
  foreach (string sgid in sgInfo ) {
    // HOW DO I get the Structure Group Details here
     //TCMURI sgURI = new TCMURI(sgid);
  }
Run Code Online (Sandbox Code Playgroud)
问题1:如何获得所有结构组和单个结构组的详细信息?(可能是简单的,我无法找到正确的API).
问题2:如何使用所有结构组ItemTypeCriteria sgCriteria = new ItemTypeCriteria(4); // 4 …
我试图使用.net客户端查询OData以获取特定DateTime中的Last Published组件.它始终失败,但有例外'datetime' is not property of entity: 'com.tridion.storage.ComponentMeta'
var lastPubComponents = _client.Components
                               .Where(p => p.PublicationId == sitePubId && p.LastPublishDate > Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-ddThh:mm:ss")))
                               .ToList();
Run Code Online (Sandbox Code Playgroud)
当我检查构造的Odata URL时,它看起来像以下,我尝试从浏览器使用相同的URL只是为了仔细检查我得到了相同的错误,这是预期的.
我尝试使用LINQ时的Odata URL
/cd_webservice/odata.svc/Components?$filter=PublicationId eq 59 and LastPublishDate ge datetime'2012-10-11T09:22:14'
Run Code Online (Sandbox Code Playgroud)
我尝试datetime从上面的URL中删除字符串并再次从浏览器中检查.此URL正常工作,我得到了正确的结果.
以下是URL(工作时没有日期时间)
/cd_webservice/odata.svc/Components?$filter=PublicationId eq 59 and LastPublishDate ge '2012-10-11T09:22:14'
Run Code Online (Sandbox Code Playgroud)
这种情况让我觉得LINQ和/或.net客户端组合出了问题.
我尝试使用不同的日期时间格式组合,我得到相同的错误.当我检查Odata标准时,它建议使用datetime字符串,但这是我遇到的问题.
任何人都知道如何从LINQ代码调试/解决这个问题?任何帮助将不胜感激.
我们有大量的出版物,目前我们在多个环境(主要是UAT和PROD)上手动应用CMS权限.这很乏味且经常容易出错.
我们正尝试在多个环境中导出和导入CMS权限,因此可以手动完成一次,并使用某种工具移植到其他环境.
环境:Tridion 2011 SP1 + IIS 7.5 + SQL Server 2008 r2
在Old PowerTools(VBScript)中,曾经有一些工具来管理Access管理,这可能很方便,但仍然容易出错.由于显而易见的原因,我们对使用OLD powertools并不感兴趣,并且它是重复的操作功能,因此也排除了DB选项.
我们正在考虑使用Core Service构建一个可以导出和导入权限的工具.我们在这些环境中拥有相同的组,发布和文件夹结构.
有人曾尝试过这个吗?其他同事Tridioneers在大型实施中使用的经验或做法是什么?
任何观点都非常感谢.
我试图锁定几个特定组的模式.例如; 模式"SuccessStroy"不适用于"GroupB".我将权限应用于存在模式的文件夹.文件夹权限的方式是"无读取"访问"GroupB".我将隐藏组织项设置为true.
从GUI,当GroupB用户登录并尝试创建组件时,他们会在下拉列表中看到架构"SuccessStory",但是当他们选择时,他们会看到一条消息"您没有访问权限".所以权限肯定是正确的,但是当下拉显示由于某种原因它不尊重权限并仍然给用户选择受限制的模式.
有人经历过这种行为.
环境:Tridion 2011 GA + HR 1,Windows 2008 R2 Sp1,.net 4.
注意:行为不仅限于模式,我注意到页面模板和组件模板也是如此.
我有新的UI设置,并注意到,当我更新页面时,它没有更新更新.我也没有看到page_ {sessionId/GUID} .aspx创建.
检查会话预览数据库,我看到PAGE_CONTENT表中的更改与新呈现的内容,所以似乎会话预览工作正常但预览网站无法获取更改并刷新UI.
我检查了.aspx的所有预览处理程序和映射,并确保它们在web.config中是正确的.有关为什么预览网站没有显示更改的任何想法?
我在cd_storage_conf.xml中设置了会话预览数据库.
<StorageBindings>
  <Bundle src="preview_dao_bundle.xml"/>
</StorageBindings>
<Wrappers>
  <Wrapper Name="SessionWrapper">
    <Timeout>120000</Timeout>
    <Storage Type="persistence" Id="db-session-webservice" dialect="MSSQL"
             Class="com.tridion.storage.persistence.JPADAOFactory">
      <Pool Type="jdbc" Size="5" MonitorInterval="60" 
            IdleTimeout="120" CheckoutTimeout="120" />
      <DataSource Class="com.microsoft.sqlserver.jdbc.SQLServerDataSource">
        <Property Name="serverName" Value="localhost" />
        <Property Name="portNumber" Value="1433" />
        <Property Name="databaseName" Value="Tridion_Broker_SessionPreview" />
        <Property Name="user" Value="usr" />
        <Property Name="password" Value="pwd" />
      </DataSource>
    </Storage>
  </Wrapper>
</Wrappers>
Run Code Online (Sandbox Code Playgroud)
web.config(处理程序):
<add verb="GET" path="*.htm" type="Tridion.ContentDelivery.Preview.Web.StaticFileHandler" />
<add verb="GET" path="*.jpg" type="Tridion.ContentDelivery.Preview.Web.StaticFileHandler" />
<add verb="GET" path="*.png" type="Tridion.ContentDelivery.Preview.Web.StaticFileHandler" />
<add verb="GET" path="*.html" type="Tridion.ContentDelivery.Preview.Web.StaticFileHandler" />
<add name="Tridion.ContentDelivery.Preview.Web.PreviewContentModule" type="Tridion.ContentDelivery.Preview.Web.PreviewContentModule" />
Run Code Online (Sandbox Code Playgroud)
记录(删除了时间戳和DEBUG前缀):
ClaimStore - …Run Code Online (Sandbox Code Playgroud) 我想知道什么是监视Tridion缓存通道服务(CCS)进行功能健康检查的最佳方法.
我们今天已经拥有什么?
我们能够通过上述两个检查来捕获大多数故障,但有时CCS仍然没有响应缓存失效或缓存命中以及日志中没有错误(无声地失败?不确定).
还有其他方法可以进行健康检查吗?
通常对于http,我们可以ping一个url并获得200或500等状态代码.CCS是否有类似的技术,因此我们可以获得功能健康状态.它是基于RMI的,因此不确定它是否具有类似http的状态代码.
任何指针将不胜感激.
我们遇到了一个奇怪的问题,我们无法打开出版物.我们确实在GUI中收到错误,指出"此位置已存在标题为"Segments"的项目." 有谁之前经历过这个吗?最近没有应用配置/补丁.
环境:SDL Tridion 2011 GA + HR#1 IIS 7.5 .net 4 SQL Server 2008 R2
即使我们只是尝试查看发布属性或尝试从GUI扩展发布,也会发生错误.
下面是堆栈跟踪:
at Tridion.AudienceManagement.DomainModel.Dal.FolderDal.Save(Folder folder,Boolean useTransaction)
在Tridion.AudienceManagement.DomainModel.Dal.PublicationDal.CreateSegmentsRootFolder(出版物出版物)
在Tridion.AudienceManagement.DomainModel.Dal.PublicationDal.SolvePublicationWithoutSegmentRoot(出版物出版物)
在Tridion.AudienceManagement.DomainModel.Dal.PublicationDal.Read(出版物出版物)
在Tridion.AudienceManagement.DomainModel.Publication.Load()
在Tridion.AudienceManagement.DomainModel.Publication..ctor(UserContext userContext,TcmUri id)
在Tridion.AudienceManagement.UI.DataExtenders.TreeExtender.AddOeRootNode(XmlTextReader reader,TcmUri publicationUri)
在Tridion.AudienceManagement.UI.DataExtenders.TreeExtender.PostProcessListPublication(XmlTextReader reader,TcmUri publicationUri,PipelineContext context)
at Tridion.AudienceManagement.UI.DataExtenders.TreeExtender.ProcessListResponse(XmlTextReader reader,PipelineContext context)
at Tridion.AudienceManagement.UI.DataExtenders.TreeExtender.ProcessResponse(XmlTextReader reader,PipelineContext context)
在Tridion.Web.UI.Core.Extensibility.Pipeline.<> c_ DisplayClass4.<ProcessResponse> b _3(DataExtender扩展程序)
在System.Collections.Generic.List
1.ForEach(Action1 action)在Tridion.Web.UI.Core.Extensibility.Pipeline.ProcessResponse(XmlTextReader reader,PipelineContext context)
在Tridion.Web.UI.Core.Extensibility.Pipeline.ProcessResponse(XmlTextReader输入,Object [] methodParameterValues)
at Tridion.Web.UI.Models.TCM54.Lists.GetList(String id,Filter filter,Int32 columns)
在SyncInvokeGetList(Object,Object [],Object [])
任何指针/帮助将不胜感激?
快速更新和解决方案:
我们已经打开了Tridion CS票,并且能够在Tridion CS的帮助下解决问题.在我们的例子中,当我们应用发布的安全权限时,就会发生这种情况.我们仍然需要确保这个问题的根本原因.tridion_cm_email的表"FOLDERS_OWNING_PUBLICATIONS"未正确填充发布ID,当我们应用权限并使用发布ID更新表时解决了该问题.
注意:在尝试上述解决方案之前,请备份数据库并打开Tridion CS票证以获取解决方案.另外,为anlaysis的客户支持提供tridion_cm和tridion_cm_email数据库.
根据您的数据库应用修补程序(OE_2011.1.1.82675)MSSQL或ORACLE: https ://www.sdltridionworld.com/downloads/hotfixes/Outbound_Email_2011_SP1/index.aspx
在dev '09系统上安装Powertools - 现在我收到脚本错误"无法设置属性'async'的值:object is null或undefined"
我想这可能是因为我在compat模式下使用IE9,我认为不支持?
谢谢
我在访问页面模板的DWT中的包变量时遇到了问题.
我有一个4 TBB的复合页面模板如下:
1)常量TBB - 该TBB将组件的所有值(嵌入式多值组件)读取为键值对,并将它们推送到包中.例如:
Item item = this._package.CreateStringItem(contentType, "test");
this._package.PushItem("key", item);
Run Code Online (Sandbox Code Playgroud)
2)页面模板的C#DLL - 包含页面模板的逻辑
3)页面模板的DWT - 此处输出所有包变量.
4)默认完成操作
我面临的问题如下:
在我的DWT中,我想比较Component Component模板的元数据和Constant TBB中设置的包变量.
我使用的语法是:
<!-- TemplateBeginIf cond="ComponentTemplate.Metadata.section_name = key" -->
Run Code Online (Sandbox Code Playgroud)
其中key是在常量TBB中设置的包名称,其值为"test"
但不知何故,这个包变量"key"给出的值为0而不是测试.
有人能让我知道我哪里错了.