Quantcast
Channel: SCN : Discussion List - SAP Crystal Reports, version for Visual Studio
Viewing all 3636 articles
Browse latest View live

CR9 --> CR13 upgrade (with PESetSQLQuery() )

$
0
0

Hello,

 

As a preamble, this is my first time posting on SCN, plus I'm a bit of a grasshopper at Crystal -- and the Rules of Engagement link was broken for me -- so apologies if I’m doing it wrong or asking a dumb question.

 

The product I’m working on includes a reporting framework that was originally built around Crystal Reports 9 (or earlier?).  The full details of what we're trying to do are a bit lengthy, so let me ask the "Executive Summary" version of the question, followed by the details for those who enjoy a hefty read.

 

 

Executive Summary:

 

We're hoping to upgrade the application to use CR13/14.  The report framework relies on the existence of PESetSQLQuery() to add a Where clause to the reports’ queries, but PESetSQLQuery() (or an equivalent) doesn't seem to exist in CR13.  Changing the reports is not an option, and we want to change existing code as little as possible.  Is it possible to perform such an upgrade without changing the reports?

 

 

Long Details:

 

The product we have is essentially a two-tier, database-driven desktop application.  The product ships with some reports, but additionally allows the user to create their own reports based on virtually the complete DB schema (i.e. we don't limit external report writers to a narrower interface).  The reports sit on the end-users' PCs.  The product doesn't distinguish between inhouse reports and customer-created reports. 

 

The reports rely on PESetSQLQuery() to achieve both generic filtering and row-level security:

 

On the generic filtering side, all reports are requested from the application through a shared, static UI: this UI allows the user to filter on various columns from various tables, but knows nothing of the report being generated.  To use an approximate example, suppose the product is from sports stats, where one of the filterable columns exposed by the reporting UI is BattingAverage (in the BaseballPlayerStats table), and one of the reports is "Hockey Goaltender Names".  When a user comes to generate a report, they may choose a "Hockey Goaltender Names" report, and select "For players whose Batting Average is greater than .300".  The reporting framework asks for the Crystal Report's query and looks for the BasebasePlayerStats table in the report's FROM clause.  If the framework finds the table, it appends a suitable WHERE clause to the query (which was possible in CR9, using PESetSQLQuery() ); if it doesn't find the table, it simply ignores the user's input.  In the "Hockey Goaltenders with a batting average greater than .300" example, the batting average part would simply get ignored, since the "Goaltenders" report doesn't refer to BaseballPlayerStats.  To sum up in other words, report construction is the responsibility of the report's author, but the application assumes responsibility for filtering the results.

 

In addition to this, the application also takes on the responsibility of silently (from the end-user's perspective) handling row-level security.  Continuing with the (approximate, if increasingly tortured) example, the application can be configured (dynamically) to support "Rookie Analyst" users that can only see players younger than 25 years old and "Veteran Analyist" users that can only see players older than 25 years old.  If Jane Youngsmith, the Rookie Analyst, logs in and ask for a "Hockey Goaltender Stats Summary" Report, it'll only show her the players that she has permission to see (i.e. those less than 25 years old), regardless of the filtering option she chooses through the UI.  This is achieved by an additional WHERE-clause appended into the report's SQL query -- again, which was possible using PESetSQLQuery().  This has been done strictly application-side and transparently to the user and the report authors, in order to enforce those permissions.  (In other words, since anyone could write their own report with its own query, this is done in an attempt to prevent Jane Youngsmith from writing her own report that allows her to see players older than 25.)

 

I should pause for a moment to say that I'm not arguing for or against the architecture of such a system.  This is simply what exists, and because it's rather complicated, and because it works, and because regression testing all our reports is a very, very daunting task, and because of a variety of reasons, people are Very Reluctant to change it.

 

I said, "Because it works" in the last paragraph, but that's the rub.  It worked for CR9.0 thanks to the PE[Get/Set]SQLQuery() functions, but we're trying to upgrade to CR13/14.  Whereas PEGetSQLQuery() has merely been migrated in CR13 (to ISCDReportClientDocument.RowsetController.GetSQLStatement() ), it seems that PESetSQLQuery() has been disappeared altogether.

 

We've been investigating how to change the calls to Crystal to be CR13-friendly, while trying to change as little else as possible, but we're starting to reach the point that this looks impossible.  However, no one on the team has sufficient Crystal experience to make that call categorically -- but simultaneously, no one can identify anything that /will/ work.  Here are some things that we've tried:

 

 

Try 1:  Run the (modified) query programmatically to produce a one-table RecordSet, and use ReportDocument.SetDataSource() to essentially say, "Thanks Report, we used your Query as a basis to generate the record set for you -- now don't worry about your Query anymore: just use these results."

 

Advantage: This would be the least-intruisive approach for us.

 

Problem 1:  This doesn't seem to be possible.  (Or at least, that doesn't seem to be what SetDataSource() is for, and we haven't found an API that allows for this.)

 

 

Try 2:  Use ReportDocument.SetDataSource() with an in-memory DataSet, where the tables in the DataSet have been "pre-filtered" by pushing the Where clauses into the query statements used to create the tables.  In other words, this effectively converts:

 

SELECT A.x, B.y

FROM A, B

WHERE A.x = x1 AND B.y = y1

 

into

 

SELECT A.x, B.y

FROM

(SELECT A.x

FROM A

WHERE A.x = x1) as A,

(SELECT B.y

FROM B

WHERE B.y = y1) as B

 

Advantage:  Although it's more intruisive than Try 1, it at least doesn't require us to change the Reports.

 

Problem 2A: It's not clear to me that those two forms are equivalent in general (though I'm having trouble proving or disproving it).  Moreover, although exploratory tests produce intermediate results that look identical, the end-product reports are sometimes different (though sometimes the same).  I'm not sure if this is a fundamental problem, or if it's only a superficial coding mistake that I haven't spotted yet. 

 

Problem 2B: Regardless of its correctness, it feels like a hackish way of doing it.

 

 

Try 3:  Use CrystalReportViewer.SelectionFormula, with a "CR13-friendly where-clause"  --  which seems to be the correct way of doing it in CR13(?)

 

Advantage: In theory, this could be nearly as non-intruisive as Try 1.

 

Problem 3A: The SelectionFormula property, which takes clauses approximately of the form "{table.column} = value", seems to require that table.column exist in the report's SELECT clause.  This is a problem for us, since that's generally not the case in our reports.  E.g. suppose the report's query is:

 

SELECT A.name

FROM A

 

but the SelectionFormula is "{A.battingAverage} > .300".  To make this work, it seems that we'd need to modify the report such that its query would be:

 

SELECT A.name, A.battingAverage

FROM A

 

but modifying the report is forbidden.

 

Problem 3B: SelectionFormula seems to only accept "primitive" filters; "nested" filters of the form "{a.id} in (SELECT B.id FROM B where B.age > 25)" seem forbidden.  I haven't been able to figure out if that's a fundamental (if understandable) limitation, or if I merely haven't got the syntax yet.  We admittedly haven't yet tried to run these subqueries separately and then stick the results into the SelectionFormula, partly because that's already starting to cross the the "change as little of the framework as possible" line, and partly because Problem 3A may be a showstopper for this route anyway.

 

Having said all that, the question boils down to, "Is it simply impossible to do a CR9 --> CR13/14 upgrade given these constraints?"  (As a corollary, I suppose the next question would be, "If it is indeed impossible, is there an obvious next-best upgrade path?"  And of course, "If it's not impossible, what is the right way of doing it?")  There are some other things that I've seen, but I don't have a good understanding of them.  For example, I recently discovered references to Command Objects and Universes, but I'm having trouble understanding whether they apply in this case.  More broadly, I think I've reached the point that, "A lot of things initially look promising, but ultimately seem to dead-end.  I could do a self-guided random walk in CrystalLand for years; maybe it's time to ask people who actually know what they're talking about about whether this is possible."

 

Sorry for the long-windedness, but thanks greatly!

 

Kevin


VS 2010 ClickOnce App does not work on Win 7 x64

$
0
0

Use VS 2010 on 32-bit machine to create a ClickOnce app that uses Crystal Reports; the app targets x64 but with no prerequistes checked. The project includes references to these four Crystal libraries, but does not copy to local:

 

CrystalDecisions.CrystalReports.Engine.dll

CrystalDecisions.ReportSource

CrystalDecisions.Shared

CrystalDecisions.Windows.Forms

 

The development machine has got CRforVS_13_0_5.exe installed.

 

On a freshly-built  Win 7 x64 computer, with .NET Framework 4.0 (Client and Extended) installed, along with the latest Microsoft updates, install CRRuntime_64bit_13_0_5.msi from CRforVS_clickonce_13_0_5.zip.

 

Install the ClickOnce app - this message is displayed:

 

"Unable to install or run the application. The application requires that assembly CrystalDecisions.ReportAppServer.CommonObjectModel Version 13.0.2000.0 be installed in the Global Assembly Cache (GAC) first"

 

On exploration of the Win 7 x64 computer, there is indeed no such file in the GAC.

 

The only location on the computer that has Crystal files is:

 

C:\Program Files (x86)\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win64_x64

 

This location does not contain any file whose name starts with CrystalDecisions.

 

I have also tried the above test on a clean machine with the install file from CRforVS_redist_install_64bit_13_0_5.zip - same result.

 

Has anyone else got a different result?

 

Have I missed something out?

The layout of crystal report parameter selection popup changes as soon as i add report viewer event to the aspx page.

$
0
0

The layout of aspx page changes as soon as i add any(Search,Navigate,Error,Zoom,Refresh etc) crystal report viewer event to the page. When no event of report viewer is added to the aspx page a model popup of report parameter selection criteria is prompted to select parameters, but when i add a report viewer event to aspx page the  report parameter selection screen doesn't prompt as model popup. I am using pull model of crystal report development.

 

Visual Studio-2010

Crystal reports 13.02

Windows 7

 

I am attaching the screens shots of apsx page with parameter selection criteria prompted before and after adding report viewer event"CrystalReportViewer_Error" to code behind..

 

I want the report parameter selection criteria screen to be as model pop-up even when report viewer event is added to codebehind. Please help me out its urgent.

Problem in ExportToHttpResponse .

$
0
0

Hi Friends ,

 

I am trying to export my report in PDF format , so i am using below code to generate in PDF .

 

rpt.ExportToHttpResponse(ExportFormatType.PortableDocFormat,Response,false,"INVOICE_REPORT");

 

i am trying to save my pdf with default name , i.e  INVOICE_REPORT  which i mentioned above code (attachment as name) .

 

There is no problem with chrome and firefox , while i am click the save button , its automatically displaying the name which i mentioned in above code .

 

But in IE , while i am clicking the save pdf file , its displaying my aspx page name .

 

I need to display (attachment as name) default name in IE , please give me a solution .

VB2010 and Crystal 2008 error

$
0
0

Ok sap wanted me to create a simple report program and deploy to my production machine when I go to install on the production machine I get

 

unable to install or run the application. the application requires that assembly

CrystalDecisions.CrystalReports.Design Version 13.0.2000.0 be installed in the global assembly cache (GAC) first.

 

I installed the following on my 64 bit machine.. CRRuntime_64bit_13.0.2.msi

 

I still get the error... any suggestions? the machine it was developed on is a 32 bit machine, should I install the 32 bit option?

 

Jim

Database login prompt issue with CR2008 and VS2010..

$
0
0

Database logon issue...

 

I am running Visual Studio 2010 application that uses Crystal report viewer 13.0.2000. I also have hard coded the setdatabaselogon for this report to access the SQL database. The report runs fine on the development machine but once I deploy it to another machine when I select to run the report up comes the database login prompt with the server name and the database looking for the login id and password even though us integrated security is checked. No matter what I type in there it will not accept it. I have tried it with and without the system ODBC on the new machine and it still does not work. I did update the system with the latest Crystal report for visual studio 2010 13.0.5 and no luck...

 

Help please....

 

Jim Fulton

Regarding Crystal Reports SDK for VS.NET 2010 "Concurrent Processing License (CPL)"

$
0
0

I know that crystal reports 13.02  software used for VS 2010 is free but has the CPL limitation to 3.

Wanted to know if we can by anyway increase the concurrency limit.  Will this limit apply even if it is a paid version or the limit can be purchased by purchasing any license of crystal report software?  CPL set to 3 requests is very less for the production applications.

Crystal Reports version for Visual Studio 2012 and .Net Framework 4.5

$
0
0

Hi, 

 

I need a clarification regarding the compatibility ofCrystal Reports version for Visual Studio 2012. In the link http://scn.sap.com/docs/DOC-35074
there is a version available for Visual studio 2012. I downloaded and installed the version and when I try to load the designer in VS 2012 and .Net framework
4.5, the following error is thrown “There is no editor available”. And also there are no crystal reports available under “Add new item” of Visual Studio 2012.

 

So can you confirm whether the Crystal Reports are available for Visual Studio 2012 and .Net Framework 4.5? If yes send me the link to download the same and if no when the working version of Crystal Reports with Visual Studio 2012 and .Net Framework 4.5 will be released.


Upgrading to VS2012 what version of crystal should I use

$
0
0

Thinking of upgrading to Visual Studio 2012 running on Server 2012R2 what version of crystal should I use?

 

Jim

[Ask] Subreport fails to appear, at the Main Report

$
0
0

Please help me.


This is the firsttime, Itried tocreate asubreportinCrystalReport at a Web Page Microsoft Visual Studio 2010.

I use tworeportfiles, consist of:

crInvoice.rpt and crIMEIMobilePhones.rpt

crInvoice.rpt is Main Report

crIMEIMobilePhones.rpt is afilewhichwillmakethe subreport at crInvoice.rpt

 

below, thecodeI use todisplayMainReportandsubreport. There might bea mistake. Pleasecorrected.

 

strSql = "select NoInvoice,IMEI, Namabarang,1 as Qty, hjual, diskon from tbtemp WHERE KdCabang='" & Server.HtmlEncode(Request.Cookies("KodeCabang").Value) & "'"                                                              myDataAdapter = New MySqlDataAdapter(strSql, myConnection)                    myDataAdapter.Fill(dsGrosir, "DTKwitansiGrosir")                    If dsGrosir.Tables("DTKwitansiGrosir").Rows.Count > 0 Then                        rpt = New crInvoice                                            rpt.SetDataSource(dsGrosir)                                                'below, a query that I use to display Sub Report                        cmd.CommandText = "select Brand, IMEI from tbtemp"                        cmd.CommandType = CommandType.Text                        cmd.Connection = myConnection                        If cmd.Connection.State = ConnectionState.Closed Then cmd.Connection.Open()                        myDataAdapter.SelectCommand = cmd                        myDataAdapter.Fill(ds1, "DTIMEI")                        If ds1.Tables("DTIMEI").Rows.Count > 0 Then                                             rptSub = New crIMEIMobilePhones                            rptSub.SetDataSource(ds1)                        End If                                            CrystalReportViewer1.ReportSource = rpt                        CrystalReportViewer1.RefreshReport()                                                              End If


.

Thank you.



The Crystal Report Viewer is not coming up when a report is called

$
0
0

Hello Everyone,


I have a VB.Net program that I have converted over from VB6.

 

All the reports are Crystal reports. I am using Crystal Reports XI to develop. I also have Crystal Reports for Visual Studio 2010 installed on my development machine. I have the CrystalDecisions.Windows.Forms.CrystalReportViewer version 13.0 placed on a Windows form to display the reports.

 

My development machine is running Windows 7 and everything works fine, the report viewer comes up with the reports displayed properly.

 

I also have a second machine with Windows XP on it with my old VB6 code on it.  On this machine, although I have Visual Studio 2010 installed, I do not have Crystal Reports for Visual Studio 2010 installed. When I install the new program on it, all reports works fine.
 
However, when I install my program on any user machine, when a report is called, the mouse shows the busy icon for about 30 seconds or so, and then goes away and then nothing. No errors, no report viewer, no report. And the program continues to work.


I have installed the Crystal runtime using CRRuntime_32bit_13_0_3.msi on all the machines for testing my new .NET program.

 

The following files are also copied and registered on the machines as part of the install:

 

CrystalDecisions.CrystalReports.Engine.dll
CrystalDecisions.Data.AdoDotNetInterop.dll
CrystalDecisions.Shared.dll
CRAXDDRT.dll
CRAXDRT.dll
CRPEAuto.dll
CRDESIGNERLib.dll
CrystalDataObject.dll
CrystalFileDialogLib.dll
CrystalReportsObjectFactoryLib.dll
CrystalReportViewerExportLib.dll
CrystalReportViewerWebReportSourceLib.dll
Interop.CrystalActiveXReportViewerLib13.dll
Interop.CrystalReportViewerExportLib.dll


The user machines all have the VB6 version of my program running Crystal XI and the reports work fine and continue to work fine in my old program on my test machines. But the new program, as I said, does not even bring up the viewer. And their are no errors. I am obviously missing some file on the user machines but I am at my wits end.

Please help.

Rico Graniero

how to catch the print event When user Clicks Print Button In Crystal Report Viewer?

$
0
0

i created a report using vb.net 2008 and crystal report viewer. if user print the report, I need to recored it.

user click on print button and print dialog show up with default print then user can click print or cancel.

in the report if user click print button, then program should wait for user next action?

if i print, vb debug does not go through? why? how to fix it inde?

thank you

 

 

'find the print button control and attach an event to it
                For Each Obj As Object In myToolStrip.Items
                    If TypeOf Obj Is ToolStripButton Then
                        'Adding a handler for our propose  
                        Dim b As ToolStripButton = CType(Obj, ToolStripButton)
                        If b.ToolTipText = "Print Report" Then
                            AddHandler CType(Obj, ToolStripButton).Click, AddressOf printButton_Click
                        End If

                    End If
                Next

 

Private Sub printButton_Click(ByVal sender As Object, ByVal e As System.EventArgs)

        If updateReportStats Then

            Try

                    If Windows.Forms.DialogResult.OK Then
                        'Put your stuff here
                        UpdatePrintDate()
                        MessageBox.Show(" print")
                        'Else
                        'Windows.Forms.DialogResult.Cancel()
                    End If
               
            Catch ex As Exception

            End Try
        End If
       
    end sub

Crystal Report for VS2008 error: "The request could not be submitted for background processing"

$
0
0

Hello,

I'm developing with VS2008 and Crystal Report for VS2008.

 

There is a report that includes an image object, which shows a JPG file stored as a blob field in Oracle database.

 

Most of the times that report exports to PDF correctly, but some times returns error:"The request could not be submitted for background processing" and crashes completely CR.

 

I realized that it crashes depending on the JPG file that has to show, but I can't determine what feature of the JPG file is making it to crash.

 

I have already installed this Service Pack but no change at all:

 

Crystal Reports Basic for VS 2008 - Service Pack 1

 

Extract of my code:

 

Try

           Dim oRpt As New cr_my_report

           oRpt.SetDataSource(dt)   ' dt is a datatable filled from an Oracle database query

            Dim exportOpts As ExportOptions = oRpt.ExportOptions

            oRpt.ExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat

            oRpt.ExportOptions.ExportDestinationType = ExportDestinationType.DiskFile

            oRpt.ExportOptions.DestinationOptions = New DiskFileDestinationOptions

            CType(oRpt.ExportOptions.DestinationOptions, DiskFileDestinationOptions).DiskFileName = Server.MapPath("../Temp/" + PDFName)

 

            oRpt.Export()  ' here it crashes

 

        Catch ex As Exception

 

        Finally

            oRpt.Close()

            oRpt.Dispose()

        End Try

The report you requested requires further information when use oracle DB

$
0
0

The report you requested requires further information.

 

I use oracle database.when I used sql  DB ,it is ok.

Here is my code:

 

  ReportDocument _reportDoc = new ReportDocument();
                 TableLogOnInfos infos
= new TableLogOnInfos();
                 CrystalDecisions
.CrystalReports.Engine.Database crDatabase;
                 CrystalDecisions
.CrystalReports.Engine.Tables crTables;
                 CrystalDecisions
.CrystalReports.Engine.Table crTable;
                 CrystalDecisions
.Shared.TableLogOnInfo crTableLogOnInfo;
                 crConnectionInfo
.IntegratedSecurity = false;
                 crConnectionInfo
.AllowCustomConnection = true;
                 crConnectionInfo
.DatabaseName ="XXX";
                crConnectionInfo
.UserID ="xxx";
                crConnectionInfo
.Password="xxx";

                crDatabase
= _reportDoc.Database;
                crTables
= crDatabase.Tables;
               
for(int i =0; i < crTables.Count; i++)
               
{
                    crTable
= crTables[i];
                    crTableLogOnInfo
= crTable.LogOnInfo;
                    crTableLogOnInfo
.ConnectionInfo = crConnectionInfo;
                    crTableLogOnInfo
.TableName = crTable.Name;
                    crTable
.ApplyLogOnInfo(crTableLogOnInfo);
                  
// crTable.Location = crTable.Name;
                   
if(infos.Count ==0)
                        infos
.Add(crTableLogOnInfo);
               
}
                CRViewer
.LogOnInfo = infos;
                CRViewer
.EnableParameterPrompt = true;
                CRViewer
.ReportSource = _reportDoc;

Water Mark picture can not be replaced by new picture

$
0
0

 

I am using crystal Report for VS2010 SP 2. [ASP.NET Project in C#]

 

I have implemented a Watermark with a picture say, a.jpg in the Report.

 

After some days, when I replaced the picture by b.jpg , the new one is not shown in report.

The new picture size is same as the old one.

 

I don’t know why this strange behavior is happening.

 

Please help.

 

Thanks for any help/suggestion.

 

Regards

Abhisek


Database login prompt issue with CR2008 and VS2010..

$
0
0

Database logon issue...

 

I am running Visual Studio 2010 application that uses Crystal report viewer 13.0.2000. I also have hard coded the setdatabaselogon for this report to access the SQL database. The report runs fine on the development machine but once I deploy it to another machine when I select to run the report up comes the database login prompt with the server name and the database looking for the login id and password even though us integrated security is checked. No matter what I type in there it will not accept it. I have tried it with and without the system ODBC on the new machine and it still does not work. I did update the system with the latest Crystal report for visual studio 2010 13.0.5 and no luck...

 

Help please....

 

Jim Fulton

Problem with TextObject et CR.LF

$
0
0

Hi,

 

I'm trying to fill a TextObject with a text that contains CF/LF. but when the text appears, I don't see the CR.LF.

 

  Dim tob As CrystalDecisions.CrystalReports.Engine.TextObject

    tob = MyReport.ReportDefinition.Sections("Section1").ReportObjects("Text1")

tob.text = String_From_BDD_With_CRLF

.

Could you help me?

Can't View and Edit Crystal Report after reinstall CR for VS2008

$
0
0

Hi,

As before, I installed VS2008 with CR 10.5, it works fine.

But after installed independent Crystal Report 2008 package on same computer, CR on VS 2008 is not works.

Removed independent Crystal Report 2008 package , try to open CR on VS2008.

When opening the reports in Designer view it just appears blank and give me an error invalid keycode.

How could I solve this issue?

 

Thank you very much!!!

Francis SZE

Out Of memory - CR 13 Sp5

$
0
0

Hi,

 

I am testing CR 13 SP5.

 

Actual environment:

WinfForm Application, Net 2.0, x86.

Now using CR 2008 Sp5.

 

I tested on 2 win 7 machines, one 32 bit OS and the other 64 bit OS, full patched

I pass data to CR in an ado dataset

 

I launch an invoice report preview with many pages (each page has two images).

After CR Viewer came on, I click "next page" button until end of report - this is OK in CR 2008 SP5

 

Running the same test with CR 13 Sp5, after some pages it raises this error:

 

 

unfortunately It is a random trouble, I can't always reproduce this situation, sometimes it don't raise the error and go to last page of report.

Sure in CR 2008 never see the problem.

 

Can someone help me ?

Thank You

Enzo.

bobj defined when deployed but not in VS2010

$
0
0

Most bobj is not defined errors I have seen are after the website is deployed.  Mine is the opposite.

 

Our ASP.NET application started being developed on Win2003 in VS2010.  Everything worked fine.  .Net Framework is 4.0

 

Moved the application to Win2008 in VS2010 and I had problems running a Crystal Report with a log4net.dll not found error.  I finally got that resolved by making changes in IIS (don't remember everything I did now).  When I tried running the application, I got the bobj is not defined error.  Normally, I just copied the crystalreportviewers13 folder from system_web under wwwroot to my system_web folder in my website.  It worked when I ran it as a website, but when I try running it from Visual Studio, I get bobj undefined.  I even copied the crystalreportviewers13 to the system_web folder in my development folder.  Still no luck.

 

Anyone have any ideas on this one?

Jim

Viewing all 3636 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>